Что происходит, когда мы пишем [Obj autorelease]?Что происходит, когда мы пишем [Obj autorelease] в пуле Autorelease?
Например:
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc]init];<br>
NSMutableString *str = [[[NSMutableString alloc]initWithString:@""] autorelease];<br>
NSLog(str);<br>
[str appendString:@" I"];<br>
NSLog(str);<br>
[str appendString:@" like"];<br>
NSLog(str);<br>
[str appendString:@" programming"];<br>
NSLog(str);<br>
[pool drain];<br>
NSLog(@"%@",str); //invalid
Я смущен, потому что я прочитал, что «Вы можете добавить объект в текущий пул autorelease для последующего выпуска, отправив ему сообщение autorelease», поэтому, когда я пишу
NSMutableString *str = [[[NSMutableString alloc]initWithString:@"my"] autorelease];
1) После выполнения вышеуказанного заявления Включена ли str в автореферат?
2) Если строка добавляется в autorelease бассейн, а затем, если мы ссылаемся ул после , что (до отпускания/осушение бассейн), как ...
[str appendString:@" I"];
NSLog(str);
[str appendString:@" like"];
NSLog(str);
[str appendString:@" programming"];
NSLog(str);
тогда ссылка ул будет доступна из пула авторасчетов (поскольку str теперь добавляется в пул автозапуска) или из исходного места памяти str .... ??
Confusing ... !! Может ли кто-нибудь дать мне ясное представление об этом!
Не используйте теги 'br'. Используйте кнопку «101010» для форматирования кода –