44 return class_createInstance(
self);
47 + (BOOL)respondsToSelector:(
SEL)aSelector
49 return !!class_getInstanceMethod(
isa, aSelector);
52 - (CPMethodSignature)methodSignatureForSelector:(
SEL)aSelector
55 reason:@"-methodSignatureForSelector: called on abstract CPProxy class."];
61 reason:@"-forwardInvocation: called on abstract CPProxy class."];
65 - (void)forward:(
SEL)aSelector :(marg_list)args
77 if (typeof
self._UID ===
"undefined")
78 self._UID = objj_generateObjectUID();
85 return self === anObject;
100 return class_getSuperclass(
isa);
103 - (id)performSelector:(
SEL)aSelector
105 return self.isa.objj_msgSend0(
self, aSelector);
108 - (id)performSelector:(
SEL)aSelector withObject:(
id)anObject
110 return self.isa.objj_msgSend1(
self, aSelector, anObject);
113 - (id)performSelector:(
SEL)aSelector withObject:(
id)anObject withObject:(
id)anotherObject
115 return self.isa.objj_msgSend2(
self, aSelector, anObject, anotherObject);
123 - (BOOL)isKindOfClass:(Class)aClass
130 return [invocation returnValue];
133 - (BOOL)isMemberOfClass:(Class)aClass
140 return [invocation returnValue];
143 - (BOOL)respondsToSelector:(
SEL)aSelector
145 var signature = [
self methodSignatureForSelector:_cmd],
148 [
self forwardInvocation:invocation];
150 return [invocation returnValue];
Used to implement exception handling (creating & raising).
id invocationWithMethodSignature:(CPMethodSignature aMethodSignature)
void raise:reason:(CPString aName, [reason] CPString aReason)
CPMethodSignature methodSignatureForSelector:(SEL aSelector)
An object representation of a message.
IMP methodForSelector:(SEL aSelector)
An immutable string (collection of characters).
void forwardInvocation:(CPInvocation anInvocation)
id stringWithHash:(unsigned aHash)
FrameUpdater prototype description