NSString *str = nil;
NSLog(@"str = %@",str);
NSLog(@"str.length = %u",str.length);
NSString *str2 = [NSString stringWithFormat:@"%@",str];
NSLog(@"str2 = %@",str2);
NSLog(@"str2.length = %u",str2.length);
NSLog信息是:
str = (null)
str.length = 0
str2 = (null)
str2.length = 6
str2.length = 6让我困惑,为什么?
答案 0 :(得分:5)
这看起来确实令人困惑。这样做的原因很简单:当你致电[NSString stringWithFormat:@"%@", str];
并为nil
传递str
时,你会得到一个按字面意思拼写的字符串
"(null)"
报价是为了清晰起见,它们不是字符串的一部分。如您所见,该字符串恰好有六个字符。