42 return class_createInstance(
self);
45 + (BOOL)respondsToSelector:(
SEL)selector
47 return !!class_getInstanceMethod(
isa, aSelector);
50 - (CPMethodSignature)methodSignatureForSelector:(
SEL)aSelector
53 reason:@"-methodSignatureForSelector: called on abstract CPProxy class."];
59 reason:@"-forwardInvocation: called on abstract CPProxy class."];
63 - (void)forward:(
SEL)aSelector :(marg_list)args
75 if (typeof
self._UID ===
"undefined")
76 self._UID = objj_generateObjectUID();
83 return self === object;
98 return class_getSuperclass(
isa);
101 - (id)performSelector:(
SEL)aSelector
103 return objj_msgSend(
self, aSelector);
106 - (id)performSelector:(
SEL)aSelector withObject:(
id)anObject
108 return objj_msgSend(
self, aSelector, anObject);
111 - (id)performSelector:(
SEL)aSelector withObject:(
id)anObject withObject:(
id)anotherObject
113 return objj_msgSend(
self, aSelector, anObject, anotherObject);
121 - (BOOL)isKindOfClass:(Class)aClass
128 return [invocation returnValue];
131 - (BOOL)isMemberOfClass:(Class)aClass
138 return [invocation returnValue];
141 - (BOOL)respondsToSelector:(
SEL)aSelector
143 var signature = [
self methodSignatureForSelector:_cmd],
146 [
self forwardInvocation:invocation];
148 return [invocation returnValue];