Почему расширение моего класса 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

Я не вижу никаких публичных модификаторов этих методов.