首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查NSArray中的对象是否为NSNull?

如何检查NSArray中的对象是否为NSNull?
EN

Stack Overflow用户
提问于 2013-09-28 04:06:24
回答 7查看 52.6K关注 0票数 67

我得到了一个空值的数组。请检查下面我的数组的结构:

代码语言:javascript
复制
 (
    "< null>"
 )

当我试图访问索引0时,它崩溃了,因为

代码语言:javascript
复制
-[NSNull isEqualToString:]: unrecognized selector sent to instance 0x389cea70

目前它正在崩溃,因为该数组有崩溃日志:

代码语言:javascript
复制
 *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[NSNull isEqualToString:]: unrecognized selector sent to instance 0x389cea70'
*** First throw call stack:
(0x2d9fdf53 0x3820a6af 0x2da018e7 0x2da001d3 0x2d94f598 0x1dee57 0x1dfd31 0x302f598d 0x301a03e3 0x3052aeed 0x3016728b 0x301659d3 0x3019ec41 0x3019e5e7 0x30173a25 0x30172221 0x2d9c918b 0x2d9c865b 0x2d9c6e4f 0x2d931ce7 0x2d931acb 0x3262c283 0x301d3a41 0xabb71 0xabaf8)
libc++abi.dylib: terminating with uncaught exception of type NSException
EN

回答 7

Stack Overflow用户

发布于 2013-09-28 04:17:34

代码语言:javascript
复制
id object = myArray[0];// similar to [myArray objectAtIndex:0]

if(![object isEqual:[NSNull null]])
{
    //do something if object is not equals to [NSNull null]
}
票数 124
EN

Stack Overflow用户

发布于 2013-09-28 04:18:24

代码语言:javascript
复制
if (myArray != (id)[NSNull null])

代码语言:javascript
复制
if(![myArray isKindOfClass:[NSNull class]]) 
票数 30
EN

Stack Overflow用户

发布于 2014-04-22 23:37:01

根据Toni的回答,我做了一个宏。

代码语言:javascript
复制
#define isNSNull(value) [value isKindOfClass:[NSNull class]]

然后使用它

代码语言:javascript
复制
if (isNSNull(dict[@"key"])) ...
票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19059202

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档