Con iOS 4 Apple ha introdotto il sistema ARC (Automated Reference Counting) per sollevare lo sviluppatore dalla gestione manuale della memoria. È consigliabile utilizzare ARC nel proprio progetto in quanto gli errori nella gestione manuale della memoria sono molto frequenti e non c'è motivo per non lasciare ad ARC questo compito ripetitivo. Inoltre senza dover invocare in continuazione e vari metodi retain e release otterrete un codice più essenziale e leggibile.
cocos2d non è stato scritto utilizzando ARC, infatti se aprite i sorgenti che lo compongono noterete una gestione della memoria manuale. Questo non vi impedisce di usare ARC nel vostro codice. Bisogna semplicemente attivare ARC per il vostro progetto e segnalare a Xcode di non usare ARC per i sorgenti di cocos2d-iPhone.
Ecco come fare, prima di tutto dovrete dire a Xcode di non usare la tecnologia ARC sui sorgenti di cocos2d-iPhone quindi:
- Selezionate la radice del progetto
MyFirstGamedal Project Navigator di Xcode; - Scegliete il target
MyFirstGame; - Aprite il tab
Build Phases; - Aprite la sezione
Compile Sources - Ora dovrete selezionare tutti i sorgenti da
CCAction.mfino avec4.c; - Una volta che sono selezionati, doppio click sul nome di uno di questi. Si aprirà una casella di testo in cui dovrete incollare questo comando:
-fno-objc-arc; - Infine premete Invio.
Se usate Xcode 5 i file potrebbero non essere ordinati come mostrato in figura. In tal caso sappiate che dovete semplicemente aggiungere il flag -fno-objc-arc a tutti i file eccetto i seguenti 4:
main.mAppDelegate.mHelloWorldLayer.mIntroLayer.m
Dopo averlo fatto selezionate Xcode > Preferences > General e attivate l'opzione "Continue building after errors".
Ora bisogna attivare ARC e rimuovere dai sorgenti main.m, AppDelegate.m, HelloWorldLayer.m e IntroLayer.m le istruzioni per la gestione manuale della memoria. Per fortuna penserà a tutto Xcode. Basta scegliere Edit > Refactor > Convert to Objective-C ARC...
Selezionate solo gli ultimi 4 file, ovvero main.m, AppDelegate.m, HelloWorldLayer.m e IntroLayer.m. Premete Check e poi Next.
Xcode vi mostrerà un'anteprima delle modifiche che apporterà ai sorgenti (fondamentalmente rimuovendo le istruzioni relative alla gestione manuale della memoria). Premete Save.
Xcode vi chiederà se volete creare uno snapshot prima dell'operazione, premete Disable.
Ora ARC è attivo, premete CMD+R per testare che tutto stia funzionando ancora.
La parte relativa alla configurazione è terminata. Adesso che avete un piccolo progetto di prova funzionante inizierete a vedere gli aspetti più interessanti che compongono un videogioco 2d basato su cocos2d-iPhone.
Se vuoi aggiornamenti su Development inserisci la tua email nel box qui sotto:
