Мы используем файлы cookie для улучшения работы сайта и предоставления вам персонализированного опыта. Правила использования файлов cookie можно найти в нашей политике конфиденциальности
Класс, помеченный атрибутом @objc
, становится доступным из Objective-C кода. Это обеспечивает интероперабельность между Swift и Objective-C.
Ключевые аспекты:
@objc
часто подразумевает динамическую диспетчеризацию, то есть вызов метода определяется во время выполнения, а не во время компиляции. Это необходимо для некоторых Objective-C фич, таких как Key-Value Observing (KVO), Objective-C Runtime и @dynamic
.NSObject
: Чтобы класс был полностью доступен из Objective-C, он обычно должен наследоваться от NSObject
. Классы, не наследующие от NSObject
, также могут быть помечены @objc
, но их функциональность в Objective-C может быть ограничена.@objc
классов могут использоваться сКласс, помеченный атрибутом @objc
, становится доступным из Objective-C кода. Это обеспечивает интероперабельность между Swift и Objective-C.
Ключевые аспекты:
@objc
часто подразумевает динамическую диспетчеризацию, то есть вызов метода определяется во время выполнения, а не во время компиляции. Это необходимо для некоторых Objective-C фич, таких как Key-Value Observing (KVO), Objective-C Runtime и @dynamic
.NSObject
: Чтобы класс был полностью доступен из Objective-C, он обычно должен наследоваться от NSObject
. Классы, не наследующие от NSObject
, также могут быть помечены @objc
, но их функциональность в Objective-C может быть ограничена.@objc
классов могут использоваться сЗарегистрируйтесь или войдите, чтобы получить доступ к полным ответам на все вопросы из банка вопросов.