2012-05-09 15 views

risposta

50

Selezionare il progetto, quindi Impostazioni di costruzione. Cerca Conteggio riferimento oggettivo-C nel compilatore Apple LLVM - Lingua. Assicurati di selezionare il bersaglio; mentre è possibile impostarlo nel progetto, il target può sovrascriverlo.

(È inoltre possibile utilizzare la barra di ricerca in Impostazioni costruire per OBJC_ARC.)

Tenete presente, inoltre, che è possibile attivare ARC o disattivare in base al file in fase di compilazione.

Oppure, semplicemente provare qualcosa di simile nel codice:

[[[NSObject alloc] init] autorelease] 

Se si ottiene un errore:

ARC forbids explicit message send of 'autorelease' 

Poi si sta utilizzando ARC.

È possibile anche richiedere ARC da un file di codice sorgente controllando per esso:

#if !__has_feature(objc_arc) 
#error This file must be built with ARC. 
// You can turn on ARC for only this file by adding -fobjc-arc to the build phase. 
#endif 
+0

Il mio progetto sta usando ARC ma ancora, non ricevo un errore quando la release appare nel codice. Neanche io ho alcuna bandiera che salta ARC. Qualche idea del perché? –

+0

La mia ipotesi è che ARC non sia in uso per qualche motivo. Prova a utilizzare il #if qui descritto, ma inserisci un #error all'interno: http://stackoverflow.com/questions/7708267/check-for-arc-in-precompile –

+0

Cool, grazie per il feedback. Non riuscivo a capire da dove provenisse esattamente il problema, ma sembra che fosse correlato a qualche bug dei cocoapodi. L'aggiornamento dei cocoapod e il rilancio dei pod (e quindi il file .xcworkspace) hanno risolto il mio problema. –

20

Basta cercare automatico in impostazioni di generazione del bersaglio:

enter image description here

Problemi correlati