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 *)anObjectprotocol:(Protocol *)aProtocolОбсуждение
Таким образом средство проверки может быть продано вместо
anObjectограничить сообщения, которые могут быть отправлены вanObject. Возвращает новый экземпляр.Оператор импорта
Objective C
@import Foundation;Доступность
Доступный в OS X v10.0 и позже.
-
Инициализирует недавно выделенный экземпляр NSProtocolChecker, который передаст любые сообщения в
aProtocolкanObject, цель средства проверки протокола.Объявление
Swift
init(targetanObject: NSObject, `protocol`aProtocol: Protocol)Objective C
- (instancetype)initWithTarget:(NSObject *)anObjectprotocol:(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 и позже.
