我很好奇为什么一个变量明显分配给nil,用NSLog打印为(null):
NSString *myVar = nil;
NSLog(@"%@", myVar);
# RESULT: ' (null) '
考虑到在Objective-C中找出的所有不同类型的“虚无”,我当然很混乱,并让我尝试测试各种IF NULL语法。
答案 0 :(得分:9)
总结出不同种类的“虚无”:
nil //Null pointer to an Objective-C object
Nil //Null pointer to an Objective-C class
NULL //Null pointer
以上所有内容都定义为((void *)0)
。
答案 1 :(得分:4)
(null)是用于打印目的的'nil'的字符串表示...与IF NULL
检查无关。 myVar仍为nil
答案 2 :(得分:2)
这只是方法NSLog IMHO
的实现。
答案 3 :(得分:2)
这是%@
格式的作用,它将nil
转换为NSNull
。 myVar
本身仍然是nil
。您仍然可以使用if (myVar)
进行测试。