私はObjective-CにOS X/iOSフレームワークを書いています。Objective-CまたはSwiftのいずれかを使用している開発者にとって、フレームワークが役に立ちたいと思います。通常のObjective-Cの列挙この(この例ではApple's own UIView class referenceから直接取得される)のように定義されているで標準命名法でSwiftとObjCの両方の列挙型を作成するにはどうすればよいですか?
。
typedef enum {
UIViewAnimationCurveEaseInOut,
UIViewAnimationCurveEaseIn,
UIViewAnimationCurveEaseOut,
UIViewAnimationCurveLinear
} UIViewAnimationCurve;
この列挙はスウィフトフレンドリーにするために、私の理解では、それはこのように宣言されなければならないということです。
typedef NS_ENUM(NSInteger, UIViewAnimationCurve) {
UIViewAnimationCurve_EaseInOut,
UIViewAnimationCurve_EaseIn,
UIViewAnimationCurve_EaseOut,
UIViewAnimationCurve_Linear
};
これは、列挙型は、スウィフトからlet curve: UIViewAnimationCurve = .EaseInOut
のスタイルにアクセスすることを可能にします。
私の問題は、NS_ENUM
とアンダースコアメソッドが、Objective-Cから使用すると、奇妙な名前の列挙型を生成するということです。NS_ENUM
メソッドではSwiftからドット表記法を使用できますが、ObjCコードでは列挙された名前にアンダースコアを使用する必要があり、望ましくありません。
ObjCコード内でObjective-Cスタイルの命名規則を維持しながら、Swiftのドット表記を許可するにはどうすればよいですか?