我是Objective-C&的新手。所以,请耐心等待 - 我一直在阅读有关何时使用nil,NULL或Nil的一些问题。
我的问题是:为什么我们需要这么多类型的“null”? Xcode(或类似的IDE)不能解释这种情况需要“null”吗?
为了澄清,我不是在寻找 时使用,这清楚地解释了。例如,为什么Objective-C不能简单地将NULL定义为 nothing ,然后只使用上下文来确定您需要的 nothing 。我非常肯定答案将是出于历史或必要的目的(请举例说明)或两者兼而有之。
e.g。
NSMutableDictionary *mutableDictionary = [NSMutableDictionary dictionary];
mutableDictionary[@"someKey"] = NULL;
...在这种情况下,编译器会理解你需要插入一个“null”对象,&只需在幕后添加这个,这样字典的行为就会直观(并且不仅仅会导致错误)。
答案 0 :(得分:1)
有一个NSHipster Article涵盖了不同类型的null
基本上,NULL是C指针的空值,
nil是Objective-C-objects的空值,
Nil是Objective-C-class的空值和
[NSNull null]是一个Objective-C-Object来表示null。