I have array of NSDistantObject
class objects.
NSLog(@"%@", [[saveClassObject objectAtIndex:0] connectionForProxy]);
NSLog(@"%@", NSStringFromClass([[saveClassObject objectAtIndex:0] class]));
if ([[saveClassObject objectAtIndex:0] isKindOfClass:[NSDistantObject class]]) {
NSLog(@"Yes");
}
else {
NSLog(@"NO");
}
Output for obove code is
2011-10-20 20:49:58.841 DistributedServer[4239:a0f] (** NSConnection 0x10013ec80 receivePort <CFSocket 0x1001133d0 [0x7fff70289ee0]>{valid = Yes, type = 1, socket = 3, socket set count = 140733193388036,
callback types = 0x2, callout = __NSFireSocketAccept (0x7fff8254e74a), source = 0x10010abb0,
run loops = <CFArray 0x10015f930 [0x7fff70289ee0]>{type = mutable-small, count = 4, values = (
0 : <0x100112870>
1 : <0x100112870>
2 : <0x1001126a0>
3 : <0x1001126a0>
)},
context = <CFSocket context 0x1002000b0>} sendPort <02010610 1002c323 c0a801ae 00000000 00000000> refCount 3 **)
2011-10-20 20:49:58.842 DistributedServer[4239:a0f] NSDistantObject
2011-10-20 20:49:58.844 DistributedServer[4239:a0f] NO
NSStringFromClass
returns saveClassObject array contains NSDistantObject
class object. isKindofClass
returns No for the same. why?
NSProxy
's -isKindOfClass:
calls forwardInvocation:
. It's intended to test the class of the object the proxy stands in for, not the proxy itself.
isProxy
instead.class
equals [NSDistantObject class]
or call isSubclassOfClass:
.