为什么我的Swift类的扩展在定义文件之外不可见?

我有一个Xcode生成NSManagedObject类为我的CoreData模型。

@objc(SomeClass) class SomeClass : NSManagedObject { /* ... */ } 

它在名为“SomeClass.swift”的文件中定义。 我想扩展这个类,所以我创build了“SomeClassExtension.swift”。 我定义这样的扩展名:

 extension SomeClass { class func typeMethod1() {} func instanceMethod2() {} } 

这些扩展方法可以在这个定义文件中使用,但是它们在其外面是不可见的。 是什么导致这个问题?

这听起来像你的新文件(SomeClassExtension.swift)没有包含在正确的目标。 通过selectXcode中的文件,然后打开“文件检查器”(“查看”菜单>“实用程序”>“显示文件检查器”),检查文件的目标成员资格。 确保在“ 目标成员”标题下选中了正确的目标。

我没有看到这些方法的任何公共修饰符。