我在对象上调用 valueForKey。这将返回一个我试图转换为 BOOL 的 id(因为我知道该值是一个 BOOL)。但是 XCode 给出以下警告:
"warning: cast from pointer to integer of different size..."
所以我最终做的是这样的:
BOOL value = [[NSNumber numberWithInt:((NSInteger)[managedObject valueForKey:@"fieldName"])] boolValue];
我在想一定有更简单的方法。有吗?
最佳答案
-valueForKey:总是返回一个对象。 id
是指向任何对象的指针的 objective-c 类型。
您可以在调试器中检查该对象。一些有用的命令:
po value
po [value class]
您会发现该值实际上是一个 NSNumber,因此您可以向它发送 -boolValue
消息以获取您感兴趣的 BOOL 标志。
关于iphone - 如何从 id 获取 BOOL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1230746/