相关疑难解决方法(0)

nil,NULL和[NSNULL nil]之间有什么区别?

我得到了这样的错误 - *由于未捕获的异常'NSInvalidArgumentException'终止应用程序,原因:** - [NSCFDictionary initWithObjects:forKeys:count:]:尝试在对象[0]处插入nil值(键:搜索)'

然后我尝试了下面的代码

    if (Obj == (id)[NSNull null])  //Obj is an id 
{
    NSLog(@" Obj is (id)[NSNull null]");    
}
else if (Obj == nil)
{
    NSLog(@"Obj is nil");   
} 
else if (Obj == NULL)
{
    NSLog(@"Obj is NULL");  
} 
else
{
    NSLog(@"Obj is something else");
}

searchedDict = [NSDictionary dictionaryWithObject:Obj forKey:@"searched"];
Run Code Online (Sandbox Code Playgroud)

我得到的NSLog消息是'Obj is nil'.

但是当我使用相同的上述代码时Obj是NSString并且我的应用程序由于nil值而被终止,我得到了NSLog消息为'Obj is(id)[NSNull null]'.

nil,NULL和[NSNULL nil]之间有什么区别?

是否存在不同类型的Null值?如果是,如何检查这些空值

谢谢 :-)

iphone null objective-c invalidargumentexception

8
推荐指数
2
解决办法
2948
查看次数