nil和NULL的區別

2021-09-30 12:21:08 字數 955 閱讀 5827

nil 是對objective c id 物件賦空值

例如nsstring* string = [nsstringstringwithformat:@"test"];

string =nil;

對於objective c 集合類物件 比如陣列物件,字典物件,當我們不需要再使用他們的時候,對他們release 的同時最好也把他們賦值為nil,這樣確保安全性,下面乙個簡單的乙個例子:如果不賦值nil,可能導致程式崩潰

nsarray * array = [nsarray arraywithobjects:@"

test

",@"

test1

",nil];

[array release];

if(array)

程式設計的時候對集合類物件先賦值為nil,再將其release這樣可以保證程式安全性,蘋果官方例子中也看到過在viewdidunload把物件賦值nil,然後在

dealloc方法中將他們release,

nil: a null pointer to an objective-c 

class

.表示對類進行賦空值

null

: a null pointer to anything else,  is 

forc-style memory pointers. 用於對非物件指標賦空值,比如c指標

nsnull 對於像nsarray這樣的型別,nil或null不能做為加到其中的object,如果定義了乙個nsarray,為其分配了記憶體,又想設定其中的內容為空,則可以用[nsnull null】返回的物件來初始化nsarray中的內容

nil和null的區別

在objective c裡,nil物件被設計來跟null空指標關聯的。他們的區別就是nil是乙個物件,而null只是乙個值。而且我們對於nil呼叫方法,不會產生crash或者丟擲異常。這個技術被framework通過多種不同的方式使用。最主要的就是我們現在在呼叫方法之前根本無須去檢查這個物件是否是n...

nil和NULL的區別

只能作為指標變數的值.如果1個指標變數的值是null值代表.代表這個指標不指向記憶體中的任何1塊空間 null其實等價於0 null其實是1個巨集.就是0只能作為指標變數的值.代表這個指標變數不指向記憶體中的任何空間.nil其實也等價於0 也是1個巨集.就是0.所以,null和nil其實是一樣的 雖...

和null的區別

string str1 null str引用為空 string str2 str引用乙個空串 也就是null沒有分配空間,分配了空間,因此str1還不是乙個例項化的物件,而str2已經例項化。注意因為null不是物件,是物件。所以比較的時候必須是 if str1 null 和if str2.equa...