Почему @autoreleasepool все еще нужен для ARC?

По большей части с ARC (Автоматический подсчет ссылок) нам вообще не нужно думать об управлении памятью с объектами Objective-C. Не разрешено создаватьNSAutoreleasePools больше, однако есть новый синтаксис:

@autoreleasepool {
    …
}

Мой вопрос: зачем мне это нужно, когда я не должен вручную выпускать / автоматически выпускать?

РЕДАКТИРОВАТЬ: Подводя итог, я получил кратко все ответы и комментарии:

Новый синтаксис:

@autoreleasepool { … } это новый синтаксис для

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
…
[pool drain];

Важнее:

ARC используетautorelease также как иrelease.Для этого нужен пул автоматических выпусков.ARC не создает пул автоматических релизов для вас.Тем не мение:В основном потоке каждого приложения Cocoa уже есть пул авто-релизов.Есть два случая, когда вы можете использовать@autoreleasepool:Когда вы находитесь во вторичном потоке и нет пула автоматического выпуска, вы должны создать свой собственный для предотвращения утечек, таких какmyRunLoop(…) { @autoreleasepool { … } return success; }.Когда вы хотите создать более локальный пул, как показал @mattjgalloway в своем ответе.

Ответы на вопрос(7)

Ваш ответ на вопрос