瘋狂ios講義之建立cocos2d項目(2)

13.3.2 cocos2d項目如何支持ARC

iOS 5中所支持的全新特性ARCAutomatic Reference Counting)首次在iOS系統中提供了自動內存管理,從而避免由於對retainreleaseautorelease這些命令的錯誤調用而致使內存泄漏。實際上,Apple還成功地使得ARC能夠向下兼容iOS 4的項目。現現在,愈來愈多的項目都使用了ARC來處理內存管理的引用計數。本書中全部的源代碼都已經轉爲使用ARC,這意味着有更少的代碼量、更少的Bug以及更優秀的內存管理。安全

意外的問題是,cocos2d源碼並無使用ARC。這就意味着,基於cocos2d開發遊戲時,不能使用ARC。到目前爲止,最好的解決方案就是將cocos2d代碼添加爲靜態庫Static Library,而後就能夠安全地將cocos2d靜態庫鏈接到支持ARC的目標項目程序當中了。ide

使用添加靜態庫的方式使cocos2d項目支持ARC,大體須要以下兩個步驟。ui

1. cocos2d代碼添加爲靜態庫spa

2.重構cocos2d項目源碼使之支持ARC.net

接下來,咱們執行上面兩個步驟就能夠將「HelloWorld」項目改成支持ARCcode

1. cocos2d代碼添加爲靜態庫

在項目導航面板中選擇「HelloWorld項目,而後單擊TARGETS下面的「HelloWorld這個Target,再選擇「Build Settings,找到「Apple LLVM 5.0-Language-Objective C項目,展開能夠看到「Objective-C Automatic Reference Countiong選項爲No,如圖13.8所示,說明當前項目並無使用ARC遊戲

100030_mYNf_262659.jpg

在項目導航面板中選擇「HelloWorld」項目,而後找到libs組並刪除。彈出如圖13.9所示的確認對話框,單擊「Remove References」按鈕。不要單擊「Move to Trash」按鈕將這些文件移動至回收站中,由於以後還要使用到它們。內存

100047_Fu5q_262659.jpg

在項目導航面板中選擇「HelloWorld項目,而後單擊TARGETS下面的「HelloWorld這個Target,再單擊HelloWorld下面的「Add Target按鈕,如圖13.10所示。開發

100103_GVnc_262659.jpg

展開iOS下的「Framework&Library選擇「Cocoa Touch Static Library」模板,而後單擊「Next按鈕,如圖13.11所示。get

100127_x46O_262659.jpg

爲靜態庫命名,在「Product Name」中輸入cocos2d-library,而後單擊「Finish按鈕,將靜態庫目標程序添加到HelloWorld項目中,如圖13.12所示。

100153_B6Iv_262659.jpg

建立cocos2d-library目標程序後,選擇它,能夠看見「Build Settings窗格,須要修改「Search Paths中的兩項內容,在右上角的搜索欄中輸入「search。將「Always Search User Paths設置爲Yes,將「User Header Searh Paths設置爲./**,如圖13.13所示。

101123_1Mgs_262659.jpg

101133_qq4S_262659.jpg

在項目導航面板中選擇「HelloWorld項目,而後單擊TARGETS下面的「HelloWorld這個Target,選擇「Build Phases標籤頁,展開「Link Binary With Libraries列表,如圖13.14所示。

101203_R0pJ_262659.jpg

單擊列表下面的「+按鈕,加入剛纔建立的cocos2d-library靜態庫,而後單擊「Add按鈕,如圖13.15所示。

101222_kpKV_262659.jpg

cocos2d文件添加到創建的靜態庫目標程序中。選擇「cocos2d-library組並單擊右鍵,選擇「Add Files toHelloWorld」,如圖13.16所示。

101233_vF3A_262659.jpg

找到並選擇HelloWorld項目文件夾中的libs文件夾,同時選中「Create groups for any added folders」單選鈕,選擇「cocos2d-library複選框,如圖13.17所示。

101246_5ulu_262659.jpg

提示:

101327_aRL7_262659.jpg

2. 重構cocos2d項目源碼使之支持ARC

將不支持ARCcocos2d源碼生成爲靜態庫(Static Library)以後,接下來就是重構cocos2d項目源碼使之支持ARC。很是幸運的是,Xcode的最新版本已經提供了這個功能,能夠很方便地將本來不支持ARC的代碼轉換爲支持ARC

Xcode菜單欄選擇「Edit」→「Refactor」→「Convert to Objective-C ARC」,再選擇要轉換的目標程序,如圖3-18所示。

101359_uHPI_262659.jpg

13.18 選擇「Convert to Objective-C ARC進行代碼重構

選擇「HelloWorld項目,不要選擇「cocos2d-library項目,而後單擊「Check按鈕,如圖13.19所示。

101413_FhGf_262659.jpg

Xcode會嘗試以支持ARC的方式生成代碼,並彈出一個說明性對話框提示接下來將作些什麼。單擊「Next按鈕,會並列顯示兩個代碼片斷,能夠查看到Xcode對哪些代碼進行了修改。單擊「Save按鈕,保存這些修改,如圖13.20所示。

101431_vCNf_262659.jpg

同時,Xcode還會修改HelloWorld項目中的設置信息,使項目支持Objective-C ARC(自動引用計數)。如今,代碼就會以支持ARC的方式編譯和運行了,如圖13.21所示。

101446_rYZD_262659.jpg

提示:

101727_jRdY_262659.jpg

相關文章
相關標籤/搜索