NULL其實是C\C++的用法,意思是對象指針不指向任何對象,其值為0。當使用空對象指針調用方法或訪問對象上的成員變量時,將引發異常。
2.nil和Nil代表不同的對象。
零?-& gt;指向objective- c類的空指針
零?特別是對於表示Object-C的類類型對象,它是NULL,這意味著它的對象指針不指向任何對象。
零?-& gt;指向objective- c對象的空指針
零?特別是,對於表示Object-C的類類型以外的對象,它是NULL,這意味著它的對象指針不指向任何對象。NSArray以零結尾。
因為nil在NSArray和NSDictionary中有特殊的含義(表示列表的結尾),所以不能在集合中放nil值。如果真的需要存儲壹個表示“nothing”的值,可以使用NSNull類。
3.當不能使用nil時,使用NSNull。
Nsnnull是只有壹個方法的類:+(NSNull *)null;
[NSNull null]用於向NSArray和NSDictionary添加除nil以外的空值(表示列表的結尾)。【NSNull null】是賓語,用來表示空,在nil不能用的時候用。
擴展數據:
Nil和nil可以簡單理解為Object-C自己做的objective- c的空表示,用來表示壹個對象指針不指向任何對象。
但是當對象指針為零時呢?當在或NIL的對象上調用方法或訪問成員變量時,不會返回NO,不會引發異常,程序將繼續執行。
發送到nil對象的消息的返回值取決於其方法的返回類型。如果return方法返回指針類型(比如對象指針),返回值是nil,這意味著消息被安全地傳遞到nil對象——nil只起傳遞作用。如果返回方法要返回壹個類型長度等於或小於指針類型的int,返回值為零。如果返回值是浮點類型或結構,將會得到壹個未定義的結果。