2010-01-06 29 views
1

我很好奇,爲什麼一個變量公然分配到零,打印爲(空)與NSLog的:Objective-C:NSLog打印(空)分配給nil的var?

NSString *myVar = nil; 
NSLog(@"%@", myVar); 

# RESULT: ' (null) ' 

當然,這是相當混亂給所有不同種類的「虛無」的Objective-弄清楚C,並讓我試着測試各種IF NULL語法。

回答

2

這只是執行方法NSLog IMHO

2

這是什麼%@格式呢,它會將nil轉換爲NSNullmyVar本身仍然是nil。您仍然可以使用if (myVar)進行測試。

4

(null)是打印目的'nil'的字符串表示形式...與IF NULL檢查無關。 myVar的是仍然nil

9

不同種類的「無」概括了:

nil //Null pointer to an Objective-C object 
Nil //Null pointer to an Objective-C class 
NULL //Null pointer 

所有上述的被定義爲((void *)0)