溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

瘋狂ios講義之創(chuàng)建cocos2d項目(2)

發(fā)布時間:2020-05-28 15:24:19 來源:網(wǎng)絡(luò) 閱讀:565 作者:fkJava李剛 欄目:移動開發(fā)

cocos2d項目如何支持ARC

iOS 5中所支持的全新特性ARCAutomatic Reference Counting)首次在iOS系統(tǒng)中提供了自動內(nèi)存管理,從而避免因為對retain、releaseautorelease這些命令的錯誤調(diào)用而導致內(nèi)存泄漏。實際上,Apple還成功地使得ARC可以向下兼容iOS 4的項目?,F(xiàn)如今,越來越多的項目都使用了ARC來處理內(nèi)存管理的引用計數(shù)。本書中所有的源代碼都已經(jīng)轉(zhuǎn)為使用ARC,這意味著有更少的代碼量、更少的Bug以及更優(yōu)秀的內(nèi)存管理。

意外的問題是,cocos2d源碼并沒有使用ARC。這就意味著,基于cocos2d開發(fā)游戲時,不能使用ARC。到目前為止,最好的解決方案就是將cocos2d代碼添加為靜態(tài)庫Static Library,然后就可以安全地將cocos2d靜態(tài)庫連接到支持ARC的目標項目程序當中了。

使用添加靜態(tài)庫的方式使cocos2d項目支持ARC,大致需要如下兩個步驟。

cocos2d代碼添加為靜態(tài)庫。

重構(gòu)cocos2d項目源碼使之支持ARC

接下來,我們執(zhí)行上面兩個步驟就可以將“HelloWorld”項目改為支持ARC

1. cocos2d代碼添加為靜態(tài)庫

在項目導航面板中選擇“HelloWorld項目,然后單擊TARGETS下面的“HelloWorld這個Target,再選擇“Build Settings,找到“Apple LLVM 5.0-Language-Objective C項目,展開可以看到“Objective-C Automatic Reference Countiong選項為No,如圖13.8所示,說明當前項目并沒有使用ARC。

瘋狂ios講義之創(chuàng)建cocos2d項目(2)

展開iOS下的“Framework&Library選擇“Cocoa Touch Static Library”模板,然后單擊“Next按鈕,如圖13.11所示。

在項目導航面板中選擇“HelloWorld”項目,然后找到libs組并刪除。彈出如圖13.9所示的確認對話框,單擊“Remove References”按鈕。不要單擊“Move to Trash”按鈕將這些文件移動至回收站中,因為之后還要使用到它們。

瘋狂ios講義之創(chuàng)建cocos2d項目(2)


③ 在項目導航面板中選擇“HelloWorld項目,然后單擊TARGETS下面的“HelloWorld這個Target,再單擊HelloWorld下面的“Add Target按鈕,如圖13.10所示。

瘋狂ios講義之創(chuàng)建cocos2d項目(2)


展開iOS下的“Framework&Library,選擇“Cocoa Touch Static Library”模板,然后單擊“Next按鈕,如圖13.11所示。


瘋狂ios講義之創(chuàng)建cocos2d項目(2)

⑤ 為靜態(tài)庫命名,在“Product Name”中輸入cocos2d-library,然后單擊“Finish按鈕,將靜態(tài)庫目標程序添加到HelloWorld項目中,如圖13.12所示。


創(chuàng)建cocos2d-library目標程序后,選擇它,可以看見“Build Settings窗格,需要修改“Search Paths中的兩項內(nèi)容,在右上角的搜索欄中輸入“search。將“Always Search User Paths設(shè)置為Yes,將“User Header Searh Paths設(shè)置為./**,如圖13.13所示。

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

瘋狂ios講義之創(chuàng)建cocos2d項目(2)瘋狂ios講義之創(chuàng)建cocos2d項目(2)

瘋狂ios講義之創(chuàng)建cocos2d項目(2)



單擊列表下面的“+按鈕,加入剛才創(chuàng)建的cocos2d-library靜態(tài)庫,然后單擊“Add按鈕,如圖13.15所示。

cocos2d文件添加到建立的靜態(tài)庫目標程序中。選擇“cocos2d-library組并單擊右鍵,選擇“Add Files toHelloWorld”,如圖13.16所示。

瘋狂ios講義之創(chuàng)建cocos2d項目(2)



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

瘋狂ios講義之創(chuàng)建cocos2d項目(2)


瘋狂ios講義之創(chuàng)建cocos2d項目(2)


2. 重構(gòu)cocos2d項目源碼使之支持ARC

將不支持ARCcocos2d源碼生成為靜態(tài)庫(Static Library)之后,接下來就是重構(gòu)cocos2d項目源碼使之支持ARC。非常幸運的是,Xcode的最新版本已經(jīng)提供了這個功能,可以很方便地將原本不支持ARC的代碼轉(zhuǎn)換為支持ARC。

Xcode菜單欄選擇“Edit”→“Refactor”→“Convert to Objective-C ARC”,再選擇要轉(zhuǎn)換的目標程序,如圖3-18所示。

瘋狂ios講義之創(chuàng)建cocos2d項目(2)


選擇“HelloWorld項目,不要選擇“cocos2d-library項目,然后單擊“Check按鈕,如圖13.19所示。

瘋狂ios講義之創(chuàng)建cocos2d項目(2)


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

瘋狂ios講義之創(chuàng)建cocos2d項目(2)


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

瘋狂ios講義之創(chuàng)建cocos2d項目(2)

————本文節(jié)選自《瘋狂ios講義(下)》

瘋狂ios講義之創(chuàng)建cocos2d項目(2)


向AI問一下細節(jié)

免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI