2015-01-29 4 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); 

В imformations NSLog являются:Почему длина строки составляет 6?

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

str2.length = 6 сделать меня путать, почему?

+1

Вы не понимаете, почему «(null)» составляет 6 символов? –

+1

Поскольку str2 является строкой «(null)», str is nil –

ответ

5

Это выглядит сбивающим с толку. Причина этого, однако, проста: когда вы звоните [NSString stringWithFormat:@"%@", str]; и передать nil для str, вы получите строку, разъясняющий буквально

"(null)" 

Котировки для ясности, они не являются частью строки. Как вы можете видеть, строка имеет ровно шесть символов.

+0

Я вижу, спасибо большое. –

 Смежные вопросы

  • Нет связанных вопросов^_^