2013-03-04 3 views
-1
NSString* nsString=[[NSString alloc]initWithString:@"nsString"]; 
NSLog(@"nsString RetainCount:%li",[nsString retainCount]); 

соответствующий результат:NSString сохранить счетчик в Objective-C

2013-03-04 11:18:03.291 ARC[655:303] nsString RetainCount:-1 

дополнительно: , если использование инициализации экземпляра NSMutableString; возвращение 1;

+2

так в чем ваш вопрос? – Breakpoint

ответ

2

http://whentouseretaincount.com

Неизменяемая NSStrings генерируется во время компиляции одноэлементны. Таким образом, они вообще не танцуют retain/release.

NSString обнаруживает, когда он инициализирован таким и просто возвращает строку напрямую. Вы обнаружите, что объект, возвращенный alloc в этом коде, отличается от того, который был возвращен вызовом init....

+0

Благодаря @regexident для очистки форматирования! – bbum