Ошибка @objc при переносе в Swift 2

5

У меня был класс Swift, объявленный следующим образом:

@objc class MyHelper {
 // class code
}

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

Только классы, наследующие NSObject, могут быть объявлены @objc

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

Спасибо

Теги:
xcode7

1 ответ

3
Лучший ответ

Обратитесь к сотрудникам Apple SevenTenEleven ответить на форуме разработчиков Apple.

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

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню