有没有办法在将值分配给BOOL之前检查一个值是否为NULL / Nil?
例如,我在NSDictionary中有一个值可以是TRUE / FALSE / NULL
mySTUser.current_user_following = [[results objectForKey:@"current_user_following"]boolValue];
当值为NULL时,我收到以下错误
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '*** -[NSNull boolValue]: unrecognized selector sent to instance
我希望能够处理NULL情况。
答案 0 :(得分:10)
您应该check for [NSNull null]
:
id vUser = [results objectForKey:@"current_user_following"];
if (vUser != [NSNull null]) {
// do stuff...
}
else {
// handle the case appropriately...
}
答案 1 :(得分:5)
您可以先测试然后有条件地进行测试,例如如下所示:
if (NSValue* val = [results objectForKey:@"current_user_following"]) {
mySTUser.current_user_following = [val boolValue];
}
此:
objectForKey:
两次
if
语句nil
相当于0 val
不是nil
,则要另外检查值为NSNull
,您必须添加ChristopheD给出的另一个测试,但我在这里确实需要NSNull
- YES
/ {{ 1}}应足以满足“正在关注”之类的描述
如果您没有键的有用值,您只需将其从字典中删除或不首先插入它。