2015-01-29 8 views
-1
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의 imformations은 다음과 같습니다왜 문자열 길이가 6입니까?

str = (null) 
str.length = 0 
str2 = (null) 
str2.length = 6 

str2.length = 6 나를 혼란하게, 왜?

+1

왜 "(null)"이 6 문자입니까? –

+1

str2가 문자열 "(null)"이기 때문에 str은 nil입니다. –

답변

5

실제로 혼란스러워 보입니다. 그 이유는, 그러나, 간단하다 : 당신이 [NSString stringWithFormat:@"%@", str];를 호출 str에 대한 nil을 통과 할 때, 당신은 말 그대로

"(null)" 

지수는 명확성을 위해입니다 주문 문자열을 얻을, 그들은 문자열의 일부가 아닙니다. 보시다시피, 문자열에는 정확히 6자를 사용합니다.

+0

고마워요. –