2015-09-17 3 views
5

У меня была Swift класса объявлен как это:@objc ошибки, когда мигрировал Swift 2

@objc class MyHelper { 
// class code 
} 

Я должен был сделать это, чтобы получить доступ к такому классу от Objective-C классов, так как я смешение языков в моем проекте. Теперь, когда я повышен до Xcode 7, я получаю эту ошибку:

Only classes that inherit from NSObject can be declared @objc

И такой класс не известен моим Objective-C классов больше. Я предполагаю, что тогда я должен унаследовать свой класс Swift от NSObject, будет ли это иметь какое-либо влияние на способ работы приложения?

Благодаря

ответ

3

См сотрудников компании Apple SevenTenEleven'S reply в форуме разработчиков Apple.

Он упомянул, что это из-за @objc на Swift-rooted-классах никогда не вел себя как класс, основанный на NSObject, что приводит к различной странности в сгенерированном заголовке и во время выполнения.

Мы все еще можем обрабатывать любой экземпляр класса Swift как объект AnyObject, маркировать методы и свойства класса Swift как @objc и соответствовать протоколам Objective-C; класс просто не отображается в сгенерированном заголовке и по умолчанию не имеет своих членов в Objective-C.

Смежные вопросы