stavo leggendo la documentazione ARC sul sito LLVM: http://clang.llvm.org/docs/AutomaticReferenceCounting.html#autoreleasepoolsemantica @autoreleasepool
..nel particolare circa @autoreleasepool.
Nella maggior parte dell'attuale implementazione utilizzando NSAutoreleasePool, vedo casi in cui il pool viene periodicamente scaricato durante un'iterazione del ciclo - come facciamo lo stesso con il pool @autorelease, oppure è tutto fatto per noi in qualche modo sotto il cofano?
In secondo luogo, i documenti dichiarano che se viene lanciata un'eccezione, il pool non viene svuotato .... ok eccezioni sono per nome eccezionali, ma se succedono, si potrebbe voler recuperare senza perdere un carico di memoria . I documenti non specificano quando verranno rilasciati questi oggetti.
Qualcuno ha qualche informazione su questi punti?
Penso che la seconda parte della risposta non sia giusta. i pool autorelease sono di fatto autoelocati nel pool autorelease in vigore al momento della loro allocazione. Finché l'eccezione non si propagherà oltre il pool di autorelease più esterno, nessun oggetto autoreleased perde. – JeremyP
@Jer Hai ragione; Grazie per l'avviso! –
@Bavarious - Grazie per l'ottima risposta. Di sicuro, perde la memoria in loop mentre si usa 'stringWithFormat'. –