Mac Developer Library

Developer

Foundation Framework Reference NSProtocolChecker Class Reference

Options
Deployment Target:

On This Page
Language:

NSProtocolChecker

Inheritance


Conforms To


Import Statement


Swift

import Foundation

Objective-C

@import Foundation;

Availability


Available in OS X v10.0 and later.

The NSProtocolChecker class defines an object that restricts the messages that can be sent to another object (referred to as the checker’s delegate). This fact can be particularly useful when an object with many methods, only a few of which ought to be remotely accessible, is made available using the distributed objects system.

A protocol checker acts as a kind of proxy; when it receives a message that is in its designated protocol, it forwards the message to its target and consequently appears to be the target object itself. However, when it receives a message not in its protocol, it raises an NSInvalidArgumentException to indicate that the message isn’t allowed, whether or not the target object implements the method.

Typically, an object that is to be distributed (yet must restrict messages) creates an NSProtocolChecker for itself and returns the checker rather than returning itself in response to any messages. The object might also register the checker as the root object of an NSConnection.

The object should be careful about vending references to self—the protocol checker will convert a return value of self to indicate the checker rather than the object for any messages forwarded by the checker, but direct references to the object (bypassing the checker) could be passed around by other objects.

  • Allocates and initializes an NSProtocolChecker instance that will forward any messages in aProtocol to anObject, the protocol checker’s target.

    Declaration

    Objective-C

    + (instancetype)protocolCheckerWithTarget:(NSObject *)anObject protocol:(Protocol *)aProtocol

    Discussion

    Thus, the checker can be vended in lieu of anObject to restrict the messages that can be sent to anObject. Returns the new instance.

    Import Statement

    Objective-C

    @import Foundation;

    Availability

    Available in OS X v10.0 and later.

  • Initializes a newly allocated NSProtocolChecker instance that will forward any messages in aProtocol to anObject, the protocol checker’s target.

    Declaration

    Swift

    init(target anObject: NSObject, `protocol` aProtocol: Protocol)

    Objective-C

    - (instancetype)initWithTarget:(NSObject *)anObject protocol:(Protocol *)aProtocol

    Discussion

    Thus, the checker can be vended in lieu of anObject to restrict the messages that can be sent to anObject. If anObject is allowed to be freed or dereferenced by clients, the free method should be included in aProtocol.

    Import Statement

    Objective-C

    @import Foundation;

    Swift

    import Foundation

    Availability

    Available in OS X v10.0 and later.

  • Returns the protocol object the receiver uses.

    Declaration

    Swift

    var `protocol`: Protocol { get }

    Objective-C

    @property(readonly) Protocol *protocol

    Import Statement

    Objective-C

    @import Foundation;

    Swift

    import Foundation

    Availability

    Available in OS X v10.0 and later.

  • Returns the target of the receiver.

    Declaration

    Swift

    var target: NSObject? { get }

    Objective-C

    @property(readonly, retain) NSObject *target

    Import Statement

    Objective-C

    @import Foundation;

    Swift

    import Foundation

    Availability

    Available in OS X v10.0 and later.