У меня есть вопрос о autorelease, теперь у меня есть код ниже:отношения автореферата и runloop и нитки?
int main(int argc, char *argv[]){
@autoreleasepool {
return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
}}
док говорит в конце @autoreleasepool {} объект помечается как autorelease получит сообщение об освобождении. но UIApplicationMain никогда не возвращается, что означает, что поток никогда не дойдет до конца @autoreleasepool, тогда объект, помеченный как autorelease, никогда не получит выпуск до тех пор, пока приложение не умрет. Там нет смысла autorelease .....
Я спросил кого-то, кто говорит, что система iOS будет генерировать некоторые потоки (вы знаете, один поток, один runloop). Он говорит, что runloop создаст пул автозаполнения .so объект автореферации будет выпущен в конце thead или runloop. Но в большинстве случаев мы используем основной поток. То, что он говорит, не убеждает меня.
Какой уместно использовать autorelease.It смутил меня долгое время.
я получаю другую точку, что объект autorelease получит освободить, когда один конец runloop (основной runloop будет существовать всю жизнь приложения ??), так что я не уверен ..
любой точки и соответствующий документ будет оцените!
Я задал тот же вопрос. Скорее всего, для семантических/демонстрационных причин приемлемого поведения. Единственный выход из UIApplicationMain - это программа для 'exit()', поэтому любая память будет возвращена в операционную систему в любом случае. – borrrden
Да, вы правы. – frank