NSProxy Mac OS X 10.0

This class is the only other root class in the Cocoa frameworks besides NSObject. NSProxy defines an interface to objects that stand-in for other objects. The concrete subclass, NSDistantObject, is an integral part of the distributed objects system where proxy objects are used to represent in a process objects that have been vended by another process.

Distributed messaging is not, however, the only use of proxy objects. They can also stand-in for objects that have not yet been created. When the proxy object receives a message for the object it is representing, then it can load the object and replace itself with the real object. This is useful for objects that may be too expensive resource-wise to create when their existence may not be needed.


@interface NSProxy <NSObject>
 // Class Methods
   + (id)alloc;
   + (id)allocWithZone:(NSZone *)zone;
   + (Class)class;
   + (BOOL)respondsToSelector:(SEL)aSelector;
 // Instance Methods
   - (void)dealloc;
   - (NSString *)description;
   - (void)forwardInvocation:(NSInvocation *)invocation;
   - (NSMethodSignature *)methodSignatureForSelector:(SEL)sel;
 // Methods Implementing NSObject
   - (BOOL)isEqual:(id)object;
   - (unsigned)hash;
   - (Class)superclass;
   - (Class)class;
   - (id)self;
   - (NSZone *)zone;
   - (id)performSelector:(SEL)aSelector;
   - (id)performSelector:(SEL)aSelector
   - (id)performSelector:(SEL)aSelector withObject:(id)object1 withObject:(id)object2;
   - (BOOL)isProxy;
   - (BOOL)isKindOfClass:(Class)aClass;
   - (BOOL)isMemberOfClass:(Class)aClass;
   - (BOOL)conformsToProtocol:(Protocol *)aProtocol;
   - (BOOL)respondsToSelector:(SEL)aSelector;
   - (id)retain;
   - (oneway void)release;
   - (id)autorelease;
   - (unsigned)retainCount;
   - (NSString *)description;


NSProxy is a root class.

    Part II: API Quick Reference
    Chapter 13. Foundation Classes