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
|
withObject:(id)object;
|
- (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;
|