當前位置:成語大全網 - 書法字典 - nil和Nil和NULL有什麽區別?

nil和Nil和NULL有什麽區別?

1和NULL是通用的。

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,返回值為零。如果返回值是浮點類型或結構,將會得到壹個未定義的結果。