У меня был класс Swift
, объявленный следующим образом:
@objc class MyHelper {
// class code
}
Мне пришлось сделать это для доступа к классу классов Objective-C
, так как я смешиваю языки в своем проекте. Теперь, когда я обновился до Xcode 7
, я получаю эту ошибку:
Только классы, наследующие NSObject, могут быть объявлены @objc
И этот класс еще не известен моим классам Objective-C
. Я предполагаю, что тогда я должен наследовать мой класс Swift
от NSObject
, это повлияет на то, как приложение работает?
Спасибо
Обратитесь к сотрудникам Apple SevenTenEleven ответить на форуме разработчиков Apple.
Он упомянул, что это из-за @objc
в Swift-корневых классах никогда не вел себя как класс, основанный на NSObject, что приводило к различной странности в сгенерированном заголовке и во время выполнения.
Мы можем обрабатывать любой экземпляр класса Swift как AnyObject, маркировать методы и свойства класса Swift как @objc и соответствовать протоколам Objective-C; класс просто не отображается в сгенерированном заголовке и по умолчанию не имеет своих членов в Objective-C.