Objective-Cの#defineをSwiftから利用する方法
質問
を移行しています。
UIViewController
クラスを移行して、Swiftで少し練習しています。私はブリッジングヘッダを介して正常にObjective-Cコードを使用していますが、私は以下を含む定数ファイルをインポートする必要性があります。
#define
ディレクティブを含む定数ファイルをインポートする必要があります。
で見たことがあります。 CocoaとObjective-CでSwiftを使う (シンプルなマクロ)に以下のようなものがあります。
シンプルなマクロ
通常
#define
ディレクティブを使ってプリミティブ定数を定義していましたが、Swift では代わりにグローバル定数を使用します。例えば、定数定義#define FADE_ANIMATION_DURATION 0.35
は、Swiftでよりよく表現することができますlet FADE_ANIMATION_DURATION = 0.35
. 単純な定数のようなマクロはSwiftのグローバル変数に直接マッピングされるので、コンパイラは自動的にCとObjective-Cのソースファイルで定義された単純なマクロをインポートします。
ということで、可能なようです。私は、ブリッジングヘッダーに私の定数を含むファイルをインポートしましたが、私は私の
.swift
ファイルから、解決することができません。
Swiftから定数を見えるようにするにはどうしたらいいでしょうか?
UPDATEしてください。
で動作しているようです。
NSString
定数では動作しているようですが、ブーリアンでは動作していません。
#define kSTRING_CONSTANT @"a_string_constant" // resolved from swift
#define kBOOL_CONSTANT YES // unresolved from swift
どのように解決するのですか?
現在、いくつかの
#define
は変換されるものとされないものがあります。具体的には
#define A 1
...になる。
var A: CInt { get }
または
#define B @"b"
...になる。
var B: String { get }
残念ながら
YES
と
NO
はSwiftコンパイラによって認識され、その場で変換されることはありません。
を変換することをお勧めします。
#define
を実際の定数に変換することをお勧めします。
#define
よりも優れています。
.h:
extern NSString* const kSTRING_CONSTANT;
extern const BOOL kBOOL_CONSTANT;
.m
NSString* const kSTRING_CONSTANT = @"a_string_constant";
const BOOL kBOOL_CONSTANT = YES;
そして、Swiftが表示されます。
var kSTRING_CONSTANT: NSString!
var kBOOL_CONSTANT: ObjCBool
もう一つの方法は
BOOL
の定義を
#define kBOOL_CONSTANT 1
より速く。しかし、実際の定数ほどは良くない。
関連
-
[解決済み] Objective-CでNSStringsを連結するためのショートカット集
-
[解決済み] Objective-Cの定数
-
[解決済み] Objective-Cで、ある文字列が他の文字列を含んでいるかどうかを調べるにはどうすればよいですか?
-
[解決済み] Objective-Cのtypedef enumとは何ですか?
-
[解決済み] SwiftからObjective-Cのコードを呼び出すにはどうしたらいいですか?
-
[解決済み] iOSの合成されたプロパティの名前を、先頭のアンダースコアで変更するのはなぜですか?重複
-
[解決済み] ARCで__autoreleasing ownership修飾子を記述する必要があるのは、どのような場合ですか?
-
[解決済み] Info.plistのCFBundleVersionのアップロードエラー
-
[解決済み] Objective-Cでオブジェクトのプロパティリストを取得する
-
[解決済み] ViewController の respondsToSelector: 割り当て解除されたインスタンスにメッセージが送信される (CRASH)
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] 現在の日付から7日分を差し引いた日数
-
[解決済み] NSPredicate: NSDateプロパティの日によるオブジェクトのフィルタリング
-
[解決済み] iOSのBackground Threadの起動
-
[解決済み] メソッドが存在するかどうかをチェックする
-
[解決済み] ブロックベースのAPIメソッドでnonnullとnullableのObjective-Cキーワードを使用する方法
-
[解決済み] 度数からラジアンへの変換方法を教えてください。
-
[解決済み] UIButtonsの背景色を変更することはできますか?
-
[解決済み] 宣言されたプロパティは、対応するインスタンス変数を必要としますか?
-
[解決済み] libxml/tree.h にそのようなファイルやディレクトリはありません。
-
[解決済み] Category is implementing method which will be implemented by its primary class" の警告を抑制する。