Jus*_*ble 16 iphone xcode cocoa objective-c
我在一个对象上调用valueForKey.这将返回一个我试图强制转换为BOOL的id(因为我知道该值是BOOL).但是XCode给出了以下警告:
"警告:从指针转换为不同大小的整数......"
所以我最终做的是这样的:
BOOL value = [[NSNumber numberWithInt:((NSInteger)[managedObject valueForKey:@"fieldName"])] boolValue];
Run Code Online (Sandbox Code Playgroud)
我认为必须有一个更简单的方法.在那儿?
Jim*_*eia 31
-valueForKey:始终返回一个对象.id是指向任何对象的指针的objective-c类型.
您可以在调试器中检查该对象.一些有用的命令:
po value
po [value class]
Run Code Online (Sandbox Code Playgroud)
您会发现该值实际上是一个NSNumber,因此您可以向其发送-boolValue消息以获取您感兴趣的BOOL标志.
fuz*_*uzz 27
//value = (id)
NSNumber *val = value;
BOOL success = [val boolValue];
if (success) {
//yay!
}
Run Code Online (Sandbox Code Playgroud)