Disabilitare il conteggio di riferimento automatico per alcuni file

Ho scaricato l’SDK di iOS 5 e ho scoperto che ARC è una grande funzionalità del nuovo compilatore Apple. Al momento, molti framework di terze parti non supportano ARC. Posso usare ARC per il mio nuovo codice e mantenere il codice di conservazione / rilascio attuale invariato? Il convertitore ARC non funziona qui, perché alcuni framework, come JSONKit, non possono essere convertiti in ARC usando il convertitore.

Modificare:

La risposta è aggiungere -fno-objc-arc ai flag del compilatore per i file che non volete ARC. In Xcode 4, puoi farlo sotto il tuo target -> Build Phases -> Compile Sources.

I documenti ARC pubblici , anche se non sono chiari su questo punto, sembrano suggerire che finché ogni class è tutta ARC o tutti gestiti manualmente, le classi possono essere integrate in un singolo programma.

Non è ansible combinare ARC e non ARC in un’unica class; il documento dice che l’invio di messaggi di retain , release , autorelease o retainCount con qualsiasi mezzo (compresi i timer e le @selector ritardate, che usano @selector ) è bandito nel codice ARC. Quindi non è ansible eseguire non ARC in una class ARC (poiché i messaggi necessari sono bannati) e non è ansible eseguire ARC in una class non ARC (poiché ARC aggiunge elementi di syntax non validi senza ARC).

Lo stesso documento è un po ‘più chiaro se sia ansible integrare librerie / framework non ARC in un programma ARC: Sì. Non menziona se sia ansible utilizzare le librerie / framework ARC in un programma in cui tutto il codice è non ARC, ma dato tutto quanto sopra, l’implicazione sembra essere sì.

Non è molto intuitivo come disabilitare ARC su file MULTIPLE , per un po ‘sono stato costretto a farlo uno alla volta fino a quando ho capito come farlo.

  1. Seleziona i file desiderati in Target / Build Phases / Compile Sources in Xcode (CMD + clic o Maiusc + clic)
  2. PREMERE ENTER (doppio clic ripristina la selezione, quindi non funziona)
  3. Digitare -fno-objc-arc
  4. Premi Invio o Fatto

Se si desidera disabilitare il conteggio dei riferimenti automatici per alcuni file, è molto semplice seguire i passaggi. Si aggiungono i flag del compilatore in Obiettivi -> Fasi di compilazione -> Origini di compilazione.

Xcode

La bandiera utilizzata è -fno-objc-arc premere Invio dopo averla scritta.! Devi fare doppio clic sulla colonna di destra della riga sotto Flag di compilazione. Spero che aiuti Grazie 🙂

È ansible disabilitare ARC per singoli file aggiungendo il flag del compilatore -fno-objc-arc per quei file.

Come posso disabilitare ARC per un singolo file in un progetto?