我认为如果值为null但以下代码不会抛出异常。我错过了一个错字或是否有不同的方法来做这个?
if (![itemid isKindOfClass:[NSNull class]])
{
[record setValue:itemid forKey:@"itemid"];
}
Throws exception 'itemid NSNumber * (null) 0x14e8ebc0'
答案 0 :(得分:0)
如果itemid为nil(与NSNull类的实例相对),则-isKindOfClass:将返回NO,它将传递条件并尝试设置该值。
所以,你可能想要if (itemid && ![itemid isKindOfClass:[NSNull class]]) { ...
。
对于nil引用的消息在numeric / bool上下文中返回nil,或0或false,而不管该消息的参数如何。