CoreDataモデル用にXcodeで生成されたNSManagedObjectクラスがあります。
@objc(SomeClass) class SomeClass : NSManagedObject { /* ... */ }
これは、「SomeClass.Swift」という名前のファイルで定義されています。このクラスを拡張したいので、「SomeClassExtension.Swift」を作成しました。私はこのように拡張機能を定義します:
extension SomeClass {
class func typeMethod1() {}
func instanceMethod2() {}
}
これらの拡張メソッドは、この定義ファイル内で使用できますが、ファイルの外部では表示されません。この問題の原因は何ですか?
新しいファイル(SomeClassExtension.Swift)が正しいターゲットに含まれていなかったようです。 Xcodeでファイルを選択し、[ファイルインスペクター]を開いて、ファイルのターゲットメンバーシップを再確認します([表示]メニュー> [ユーティリティ]> [ファイルインスペクターの表示])。 Target Membershipの見出しの下で正しいターゲットがチェックされていることを確認してください。
これらのメソッドにパブリック修飾子はありません。