[解決済み] Objective-CでSwift構造体を使用する方法
2022-11-02 09:47:22
質問
以下のようなアプリケーション定数を格納する構造体を持っています。
struct Constant {
static let ParseApplicationId = "xxx"
static let ParseClientKey = "xxx"
static var AppGreenColor: UIColor {
return UIColor(hexString: "67B632")
}
}
これらの定数は、Swift のコード内で
Constant.ParseClientKey
などで使用できます。しかし、私のコードでは、いくつかのObjective-Cクラスも含まれています。だから私の質問は、Objective-Cのコードでこれらの定数を使用する方法ですか?
定数を宣言するこの方法が良くない場合、SwiftとObjective-Cの両方のコードで使用されるグローバル定数を作成するための最良の方法は何でしょうか?
どのように解決するのですか?
悲しいことに、あなたは
struct
やグローバル変数を Objective-C に公開することはできません。
のドキュメントを参照してください。
を参照してください。
Objective-Cの相互運用性が必要な場合はクラスを使用する
データを処理する必要のある Objective-C API を使用する場合、または Objective-C フレームワークで定義された既存のクラス階層にデータモデルを合わせる必要がある場合、データのモデル化にクラスとクラス継承を使用する必要があるかもしれません。例えば、多くのObjective-Cフレームワークでは、サブクラス化することが期待されているクラスを公開しています。
今のところ、IMHOでは、最良の方法は次のようなものです。
let ParseApplicationId = "xxx"
let ParseClientKey = "xxx"
let AppGreenColor = UIColor(red: 0.2, green: 0.7, blue: 0.3 alpha: 1.0)
@objc class Constant: NSObject {
private init() {}
class func parseApplicationId() -> String { return ParseApplicationId }
class func parseClientKey() -> String { return ParseClientKey }
class func appGreenColor() -> UIColor { return AppGreenColor }
}
Objective-Cでは、このように使うことができます。
NSString *appklicationId = [Constant parseApplicationId];
NSString *clientKey = [Constant parseClientKey];
UIColor *greenColor = [Constant appGreenColor];
関連
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] Objective-Cの定数
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] Pythonで定数を作成するにはどうすればよいですか?
-
[解決済み] Objective-Cのtypedef enumとは何ですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] Swiftで#pragmaマーク?
-
[解決済み] switch文の中で変数を宣言する [重複]。
-
[解決済み] 警告 "format が文字列リテラルでなく、format の引数がない場合"
-
[解決済み] Objective-Cで`oneway void`の使用例?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Objective-Cで配列に結合する
-
[解決済み] 角括弧 < > と引用符 " " を使って #import する。
-
[解決済み] Objective-Cです。カテゴリ内のプロパティ/インスタンス変数
-
[解決済み] ARCで__autoreleasing ownership修飾子を記述する必要があるのは、どのような場合ですか?
-
[解決済み] なぜObjective-Cはプライベートメソッドをサポートしないのですか?
-
[解決済み] performSelectorの使用: メソッドを呼び出すだけと比較した場合
-
[解決済み] objective-cでNSURLの一部を取得する
-
[解決済み] retainCountはいつ使うのか?
-
[解決済み] 「アプリケーションはアクティブなコントローラを表示しようとした」?
-
[解決済み] APNSのデバイストークンは、一度作成すると変更されることはありますか?