1、nsstring *str = @"";該語句代表是乙個空串,並且不為nil,占有記憶體空間
2、nsstring *str = nil;該語句代表,str不指向任何物件,指標指向空
3、當str為nil時,不能使用isequalto方法,該方法對nil返回為0值,也就是你拿不到乙個準確的結果
4、當判斷為nil時,直接使用if(!str)即可
下面是**驗證:
nsstring *str = @"";
nsstring *str2 = nil;
nslog(@"str:%@",str);
nslog(@"str2:%@",str2);
if (!str) else
if (!str2) else
if ([str2 isequal:nil]) else
2016-07-15 11:38:07.068 tex0715[13215:2795643] str:
2016-07-15 11:38:07.069 tex0715[13215:2795643] str2:(null)
2016-07-15 11:38:07.069 tex0715[13215:2795643] str is not a nil
2016-07-15 11:38:07.069 tex0715[13215:2795643] str2 is nil
2016-07-15 11:38:07.069 tex0715[13215:2795643] str2 is not a nil
nil和null的區別
在objective c裡,nil物件被設計來跟null空指標關聯的。他們的區別就是nil是乙個物件,而null只是乙個值。而且我們對於nil呼叫方法,不會產生crash或者丟擲異常。這個技術被framework通過多種不同的方式使用。最主要的就是我們現在在呼叫方法之前根本無須去檢查這個物件是否是n...
nil和NULL的區別
nil 是對objective c id 物件賦空值 例如nsstring string nsstringstringwithformat test string nil 對於objective c 集合類物件 比如陣列物件,字典物件,當我們不需要再使用他們的時候,對他們release 的同時最好也...
nil和NULL的區別
只能作為指標變數的值.如果1個指標變數的值是null值代表.代表這個指標不指向記憶體中的任何1塊空間 null其實等價於0 null其實是1個巨集.就是0只能作為指標變數的值.代表這個指標變數不指向記憶體中的任何空間.nil其實也等價於0 也是1個巨集.就是0.所以,null和nil其實是一樣的 雖...