NSProtocolChecker
Класс NSProtocolChecker определяет объект, ограничивающий сообщения, которые могут быть отправлены в другой объект (называемые делегатом средства проверки). Этот факт может быть особенно полезным, когда объект со многими методами, только несколько из которых должны быть удаленно доступными, сделан доступным использованием распределенной системы объектов.
Средство проверки протокола действует как своего рода прокси; когда это получает сообщение, которое находится в его указанном протоколе, это передает сообщение к его цели и следовательно, кажется, сам целевой объект. Однако, когда это получает сообщение не в его протоколе, это повышает NSInvalidArgumentException
указать, что сообщение не позволяется, реализует ли целевой объект метод.
Как правило, объект, который должен быть распределен (все же должен ограничить сообщения) создает NSProtocolChecker для себя и возвращает средство проверки вместо того, чтобы возвратить себя в ответ на любые сообщения. Объект мог бы также зарегистрировать средство проверки как корневой объект NSConnection.
Объект должен быть тщателен относительно продажи ссылок на self
— средство проверки протокола преобразует возвращаемое значение self
указать средство проверки, а не объект для любых сообщений, переданных средством проверки, но прямыми ссылками к объекту (обход средства проверки), могло быть роздано другими объектами.
Оператор импорта
Swift
import Foundation
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Выделяет и инициализирует экземпляр NSProtocolChecker, который передаст любые сообщения в
aProtocol
кanObject
, цель средства проверки протокола.Объявление
Objective C
+ (instancetype)protocolCheckerWithTarget:(NSObject *)
anObject
protocol:(Protocol *)aProtocol
Обсуждение
Таким образом средство проверки может быть продано вместо
anObject
ограничить сообщения, которые могут быть отправлены вanObject
. Возвращает новый экземпляр.Оператор импорта
Objective C
@import Foundation;
Доступность
Доступный в OS X v10.0 и позже.
-
Инициализирует недавно выделенный экземпляр NSProtocolChecker, который передаст любые сообщения в
aProtocol
кanObject
, цель средства проверки протокола.Объявление
Swift
init(target
anObject
: NSObject, `protocol`aProtocol
: Protocol)Objective C
- (instancetype)initWithTarget:(NSObject *)
anObject
protocol:(Protocol *)aProtocol
Обсуждение
Таким образом средство проверки может быть продано вместо
anObject
ограничить сообщения, которые могут быть отправлены вanObject
. ЕслиanObject
позволяется быть освобожденным или разыменованным клиентами,free
метод должен быть включен вaProtocol
.Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращается протокол возражают использованию получателя.
Объявление
Swift
var `protocol`: Protocol { get }
Objective C
@property(readonly) Protocol *protocol
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.
-
Возвращает цель получателя.
Объявление
Swift
var target: NSObject? { get }
Objective C
@property(readonly, retain) NSObject *target
Оператор импорта
Objective C
@import Foundation;
Swift
import Foundation
Доступность
Доступный в OS X v10.0 и позже.