Почему расширение моего класса Swift не отображается за пределами определяющего файла?
У меня есть класс NSManagedObject, созданный Xcode для моей модели CoreData.
@objc(SomeClass) class SomeClass : NSManagedObject { /* ... */ }
Он определен в файле с именем "SomeClass.swift". Я хотел бы расширить этот класс, поэтому создал "SomeClassExtension.swift". Я определяю расширение следующим образом:
extension SomeClass {
class func typeMethod1() {}
func instanceMethod2() {}
}
Эти методы расширения могут использоваться в этом определяющем файле, но они не видны за его пределами. Что вызывает эту проблему?
Ответы
Ответ 1
Похоже, что ваш новый файл (SomeClassExtension.swift) не попал в правильную цель. Дважды проверьте членство в файле, выбрав файл в Xcode, затем откройте "File Inspector" (меню "Вид" > "Утилиты" > "Показать инспектор файлов" ). Убедитесь, что правильные цели отмечены в заголовке Целевое членство.
Ответ 2
Я не вижу никаких публичных модификаторов этих методов.