私はいくつかのプライベートCocoaPods(v.1.1.1)を使用しているSwift 2.3で作成された大規模なiOSプロジェクトに取り組んでいます。ポッドの1つ(Objective-Cで作成)にはEnums.h
というファイルがあります。私のアプリ(スウィフト2.3)でSwift 3へのアップグレード時に宣言されていないタイプの使用
typedef NS_ENUM(NSInteger, MyEnum){
MyEnumOne,
MyEnumTwo
};
私は、このいずれかのように列挙型のために実装され、いくつかの拡張機能を持っています。このファイルには、例えば、このコードが含まれています。例:
extension MyEnum{
func name()->String{
return "some name"
}
}
これは明らかにケースの実際の例のほんの一部ですが、あなたはそのアイデアを得ています。
私は今、プロジェクトをSwift 3.0にバンプしようとしており、Xcode独自の変換を使用しています。私のコードは今やエラーで詰まっていますが、それは期待されていました。しかし、私はこのエラーを修正する方法がわかりません:
Xcodeは拡張ファイルの最初の行に赤いエラーがあり、Use of undeclared type 'MyEnum'
と表示されるようになりました。私がCMD +でMyEnum
という名前をクリックすると、私のcocoapodの列挙型に正確に宣言されています。なぜXcodeから宣言されていないのですか?これはSwift 2.3で完璧に動作しています。
Swiftバージョンを更新してポッドを更新しようとしたとき、podfileがuse_frameworks!
と言っていないとCocoapodsが苦情を言ったので、これを追加しました。
編集: も、私の拡張子ファイル(今「宣言されていないタイプの使用が」言う)でname()
-functionの内側に、私はself.
を入力し始めるとself
がのインスタンスであることを示すオートコンプリート・ウィンドウを得ることができますMyEnum
、それは私に使用できる正しい値、例えばrawValue
を示しています。 Xcodeは明らかにEnumについて知っていますが、まだそれはUse of undeclared type 'MyEnum'
と言います。
どのバージョンのCocoaPodを使用していますか? – redent84
@ redent84 1.1.1 – Sti
Swiftファイルにenumを含むモジュールをインポートしていますか? – redent84