2012/11/21

cocos2d-iphone與ARC

cocos2d-iphone尚未轉為ARC(Automatic Reference Counting ),它的專案範本預設也把ARC關閉。這篇要講在建立專案後,讓cocos2d的部份維持「不啟用ARC」,但讓其他部分的程式碼「啟用ARC」。

請先參考這篇文章安裝cocos2d-iphone並建立Hello World

開始前,請先Build看看是否有無問題,然後再繼續往下。

主要有兩大步驟:第一,先將cocos2d的部份改成靜態程式庫,與主程式部分區離。第二,將主程式部分轉成ARC、啟用ARC。

開啟專案後,將「黃色群組的libs」刪除,但記得選「Remove References Only」,因為並非真的要刪除,而是要把libs(也就是cocos2d-iphone部分的程式碼)改成靜態程式庫。


點選左邊的專案(藍色圖示),然後點選畫面中間下面的「Add Target」。


選擇Framework & Library裡的Cocoa Touch Static Library。


命名(例如cocos2d-library),記得取消勾選「Include Unit Tests」與「Use Automatic Reference Counting」。


建立後,點選該建置目標cocos2d-library,在搜尋欄位裡輸入"search",需要修改兩項建置設定。將Always Search User Paths設為YES,將User Header Search Paths設為「./**」。


點選原有的建置目標HelloWorld(這是我新增專案時取的名字),點選標籤Build Phases,展開Link Binary With Libraries並點選+按鈕,點選剛新增的libcocos2d-library.a。這麼一來,主程式與cocos2d程式庫最後就會進行連結。


接下來要將cocos2d程式碼重新加入,請選xocde-File-Add Files to "HelloWorld"...,選擇處於專案目錄下的libs後,取消勾選Copy items into destination group's folder (if needed),勾選Create groups for any added folders,而Add to targets記得選cocos2d-library。


至此完成第一大步驟,你可以Build看看,應能成功且不該出現錯誤訊息。

接下來是第二大步驟,啟用主程式部分的ARC,請選xcode-Edit-Refactor-Convert to Objective-C ARC...,然後選擇HelloWorld.app,取消勾選libcocos2d-library.a。


此轉換工具會幫你把程式碼轉成符合ARC的寫法,而且HelloWorld.app的建置設定的Objective-C Automatic Reference Counting會變成YES。

完成囉,Build並Run,應該會得到同樣的Hello World畫面。


參考資料:

No comments:

Post a Comment