gpt4 book ai didi

objective-c - NSDistantObject 类上的 NSStringFromClass 和 isKindofClass

转载 作者:行者123 更新时间:2023-12-03 16:52:55 26 4
gpt4 key购买 nike

我有 NSDistantObject 类对象数组。

NSLog(@"%@", [[saveClassObject objectAtIndex:0] connectionForProxy]);
NSLog(@"%@", NSStringFromClass([[saveClassObject objectAtIndex:0] class]));
if ([[saveClassObject objectAtIndex:0] isKindOfClass:[NSDistantObject class]]) {
NSLog(@"Yes");
}
else {
NSLog(@"NO");
}

上述代码的输出是

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 返回包含 NSDistantObject 类对象的 saveClassObject 数组。 isKindofClass 同样返回 No。为什么?

最佳答案

NSProxy-isKindOfClass: 调用 forwardInspiration:。它的目的是测试代理所代表的对象的类,而不是代理本身。

  • 要检查您拥有的对象是否是代理,您可能需要使用 isProxy相反。
  • 要检查代理的类,您可以检查它的 class 是否等于 [NSDistantObject class] 或调用 isSubclassOfClass: .

关于objective-c - NSDistantObject 类上的 NSStringFromClass 和 isKindofClass,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7838312/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com