Sono assolutamente convinta che è bene per i programmatori di comprendere la gestione della memoria e come il sistema funziona realmente ... ma, penso ARC è un sistema molto buono e funziona davvero bene. Questa è davvero una domanda di opinione, quindi la mia opinione è che vale quasi sempre la pena di iniziare nuovi progetti che indirizzeranno applicazioni iOS 5 su ARC, tranne in circostanze molto specifiche.
Sento che se stai usando un sacco di librerie C nel tuo codice, ARC è un po 'più difficile da usare in questo momento (quindi se usi principalmente librerie C di terze parti e cose come CoreFoundation, potrebbe considerare se abbia senso o meno), ma anche allora, se queste librerie sono per lo più isolate dai tuoi controller Objective-C e simili, ARC è comunque buono.
Per le app precedenti, è necessario esaminare l'utilizzo e i modelli dell'app. Se usi molti metodi delegati, dato che non puoi usare riferimenti deboli su iOS 4, diventa un po 'più complicato e probabilmente dovrai disporre di un codice misto ARC e non ARC. Potrebbe essere meglio prendere una decisione progettuale per andare avanti con ARC. Quindi le nuove funzionalità sono progettate per iOS 5 e forse non disponibili (o completamente disponibili) nella versione iOS 4 dell'app e quelle che utilizzano ARC.
In realtà, in definitiva, dipenderà dal modo in cui la vostra applicazione è già stata progettata, quanto è grande e quanto siete comodi con la gestione della memoria gestita e l'uso/le restrizioni di ARC. Ad esempio, ho tre progetti che non convertirò mai in ARC, uno che sto mixando in questo momento, uno che è completamente convertito (ma che ha ancora come target iOS 4+) e 2 che sono full-on ARC e iOS 5+ solo.
fonte
2012-01-05 20:28:37
Suggerisco di fare questa domanda una voce wiki ... è sicuramente una buona domanda e sicuramente correlata alla programmazione, ma la maggior parte della domanda è davvero un'opinione e legata a circostanze specifiche. –
Stai facendo tre domande diverse qui. Il secondo è coperto da [iOS 5 Best Practice (Release/retain?)] (Http://stackoverflow.com/questions/6308425/ios-5-best-practice-release-retain), e il terzo da [se convertito progetto su Automatic Reference Counting (ARC), è ancora supportato su iOS 3.X, 4.X?] (http://stackoverflow.com/questions/6421753/if-convert-project-to-automatic-reference-countingarc -is-it-still-support-on) –