2012-08-27 2 views
6

Credo convertito con successo da app per arco usando il 'refactoring -> Converti in Objective-C ARC' strumento, ma solo uno dei miei obiettivi di progetto ha l'impostazione:ha convertito la mia app in ARC ma solo 1 target mostra l'impostazione ARC come SÌ?

enter image description here

E se creo qualcosa usando IB sta ancora generando il codice retain/release/dealloc?

Inoltre, ora ho arresti anomali che non avevo prima a causa dell'uso della memoria, quindi mi chiedo se il mio progetto è in uno stato metà convertito che mi sta causando problemi di memoria casuale.

Come si ottengono questi altri target per l'utilizzo di ARC o per accertarsi che stiano utilizzando ARC?

+0

Imposta i flag per questi target su 'SÌ' e verifica se il compilatore genera molti grida. In caso contrario, hai finito :) – dasblinkenlight

+0

Non c'è un posto per me per impostare i flag su SÌ, quell'opzione non viene visualizzata sotto le impostazioni di generazione per quegli obiettivi – Slee

+0

quando si guarda l'opzione di compilazione per "Compilatore per C/C++/Objective-C", dovrebbe dire "Compilatore predefinito (Apple LLVM Compiler ...)" Se è impostato su "LLVM GCC 4.2", allora "Conteggio riferimenti automatico" non sarà un'opzione. – nont

risposta

4

Modificare manualmente le bandiere per dire SÌ. Inoltre, si desidera verificare e assicurarsi che nessuno dei file abbia il flag "-fno-objc-arc" del compilatore impostato. (Ho incontrato progetti che sono stati convertiti a metà in questo modo.)

Se si verificano ancora problemi di memoria, eseguire lo strumento Leaks. Anche con ARC, è possibile avere perdite di memoria come retain cycles in cui le relazioni padre-figlio si mantengono reciprocamente. In tal caso, è necessario utilizzare indicatori deboli.

+0

rookie move - Ho dovuto attivare "All" e non solo le impostazioni "di base" per gli altri target per qualche motivo – Slee