iphone - 如何从 id 获取 BOOL

标签 iphone objective-c cocoa xcode

我在对象上调用 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/

相关文章:

ios - 捏合时图像在拉伸(stretch)

objective-c - iOS 5 Storyboard : Classes For Each Scene

iphone - 从另一个 uiviewcontroller 将字符串分配给 UILabel

iphone - 在不同的数组中添加不同部分的选定单元格,UICollectionView

iphone - UIScrollView 上的 setContentOffset 正确方法

cocoa - 检测垂直 NSScroller 在 NSTableView 中触底

ios - 如何在 swift 中将字符索引从布局管理器转换为字符串比例

ios - 通过点击 View 打开文本文件

iphone - 如何收集iPhone App信息

iphone - 当应用程序进入后台并返回时,我的 NSRunLoop 和计时器会发生什么情况?