A proxy for objects in other applications or threads.
SDK
- macOS 10.0–10.13Deprecated
Framework
- Foundation
Declaration
@interface NSDistantObject : NSProxy
Overview
When a distant object receives a message, in most cases it forwards the message through its NSConnection
object to the real object in another application, supplying the return value to the sender of the message if one is received, and propagating any exception back to the invoker of the method that raised it.
NSDistant
is a concrete subclass of NSProxy
, adding two useful instance methods of its own: connection
returns the NSConnection
object that handles the receiver; set
establishes the set of methods the real object is known to respond to, saving the network traffic required to determine the argument and return types the first time a particular selector is forwarded to the remote proxy.
There are two kinds of distant object: local proxies and remote proxies. A local proxy is created by an NSConnection
object the first time an object is sent to another application. It is used by the connection for bookkeeping purposes and should be considered private. The local proxy is transmitted over the network using the NSCoding
protocol to create the remote proxy, which is the object that the other application uses. NSDistant
defines methods for an NSConnection
object to create instances, but they’re intended only for subclasses to override—you should never invoke them directly. Use the root
method of NSConnection
, which sets up all the required state for an object-proxy pair.
Important
NSDistant
conforms to the NSCoding
protocol, but only supports coding by an NSPort
. NSDistant
and its subclasses do not support archiving.