我很好奇,爲什麼一個變量公然分配到零,打印爲(空)與NSLog的:Objective-C:NSLog打印(空)分配給nil的var?
NSString *myVar = nil;
NSLog(@"%@", myVar);
# RESULT: ' (null) '
當然,這是相當混亂給所有不同種類的「虛無」的Objective-弄清楚C,並讓我試着測試各種IF NULL語法。
我很好奇,爲什麼一個變量公然分配到零,打印爲(空)與NSLog的:Objective-C:NSLog打印(空)分配給nil的var?
NSString *myVar = nil;
NSLog(@"%@", myVar);
# RESULT: ' (null) '
當然,這是相當混亂給所有不同種類的「虛無」的Objective-弄清楚C,並讓我試着測試各種IF NULL語法。
這只是執行方法NSLog IMHO
。
這是什麼%@
格式呢,它會將nil
轉換爲NSNull
。 myVar
本身仍然是nil
。您仍然可以使用if (myVar)
進行測試。
(null)是打印目的'nil'的字符串表示形式...與IF NULL
檢查無關。 myVar的是仍然nil
不同種類的「無」概括了:
nil //Null pointer to an Objective-C object
Nil //Null pointer to an Objective-C class
NULL //Null pointer
所有上述的被定義爲((void *)0)
。