我的核心数据中有一个变量。我想检测为零、空或其他没有好的值(例如 222 或 333)的情况。
这应该是微不足道的,但我正在陷入 Objective-C 的语法。
以下代码是not在职的:
if (_item.id!=nil && _item.id!=0) {
//do something
}
值得注意的是 id 应该是一个 NSNumber。
它被定义为
@property (nonatomic, retain) NSNumber * id;
我应该澄清一下,当控制台中的值记录为 0 时,它不起作用。
鉴于变量类型和核心数据的工作方式,我无法告诉您是什么原因导致变量在控制台中记录为“0”,但某些原因导致它这样做。基本上,我想排除该值不是非零整数(用数学术语,而不是计算机科学术语)以外的任何值的情况。
检查存储在 a 中的数值NSNumber
,您必须调用为您提供原始类型的方法之一。
e.g. integerValue
, unsignedLongLongValue
, doubleValue
为了正确检查nil
和一个值0
,您需要以下内容:
if (_item.id != nil && [_item.id intValue] != 0) {
// code here
}
因为发送消息给nil
参考回报0
,你可以走捷径:
if ([_item.id intValue] != 0) ...
这有效是因为_item.id
必须为非零才能返回非零值intValue
.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)