読者です 読者をやめる 読者になる 読者になる

tomoyaonishiのブログ

iOSのことを中心に・・・その他もあるよ!

SwiftからObjective-Cのenumを扱う時の注意事項

Swiftを使って開発していても、OSSなどはObjective-Cで書かれたものを使うことはよくあります。 SwiftからObjective-Cのクラスなどを使うにはヘッダーファイルを用意するだけですが、Objective-C側に書かれたenumの扱いには注意が必要です。

結論から言うと、Objective-C側のenumの定義には

NS_ENUM
NS_OPTIONS

のマクロを使って定義するようにしてください。

typedef enum 

での定義ではSwift側で扱えません。

ビット演算でのオプションの定義などはNS_OPTIONSマクロを使わないと、 swift側で | & などのビット演算子での処理ができません。(エラーになってしまいます。)

もしObjective-Cの定数をSwiftで使っていてエラーが出るときは、enumの定義の仕方を調べてみましょう!

マクロの使い方についてはこちらをどうぞ!

メソッド、クラス、変数、定数宣言時に使えそうなものまとめ - tomoyaonishiのブログ