2015-04-01 64 views
0

我是新來的Objective-C &所以,請耐心等待 - 我一直在閱讀關於何時使用nil,NULL或Nil的一些問題。爲什麼我們在Objective-C中需要多種「null」?

我的問題是:爲什麼我們需要這麼多類型的「null」? Xcode(或類似的IDE)不能解釋什麼情況下需要「null」?

要澄清,我不尋找使用每個 - 這是清楚解釋。例如,爲什麼Objective-C不能簡單地將NULL定義爲什麼也沒有,然後只是使用上下文來確定哪個什麼都不需要。我相當積極,答案要麼是歷史性的,要麼是必要的目的(請舉例),或者兩者兼而有之。

例如

NSMutableDictionary *mutableDictionary = [NSMutableDictionary dictionary]; 
mutableDictionary[@"someKey"] = NULL; 

......在這種情況下,編譯器會知道你需要插入一個「空」的對象,&只需添加這一幕後所以詞典將表現直觀地(&不只是導致錯誤)。

+0

In Objective C,nil * is * NULL * is *(form of)0 .. – user2864740 2015-04-01 21:29:50

+0

答案在http://stackoverflow.com/questions/557582/null-vs-nil-in-objective-c從合同/語義的角度解釋何時使用 - 這些選擇背後的不同形式和基本原理。 – user2864740 2015-04-01 21:31:32

+0

別忘了NSNull – 2015-04-01 21:33:59

回答

1

存在NSHipster Article覆蓋不同類型的空的

基本上,NULL爲C-指針空值,
零爲目標C的對象的空值,
無是空值Objective-C類和
[NSNull null]是一個Objective-C對象來表示空值。