189 8069 5689

疯狂ios讲义之创建cocos2d项目(2)-创新互联

cocos2d项目如何支持ARC

iOS 5中所支持的全新特性ARC(Automatic Reference Counting)首次在iOS系统中提供了自动内存管理,从而避免因为对retain、release、autorelease这些命令的错误调用而导致内存泄漏。实际上,Apple还成功地使得ARC可以向下兼容iOS 4的项目。现如今,越来越多的项目都使用了ARC来处理内存管理的引用计数。本书中所有的源代码都已经转为使用ARC,这意味着有更少的代码量、更少的Bug以及更优秀的内存管理。

专注于为中小企业提供做网站、成都做网站服务,电脑端+手机端+微信端的三站合一,更高效的管理,为中小企业安居免费做网站提供优质的服务。我们立足成都,凝聚了一批互联网行业人才,有力地推动了上1000+企业的稳健成长,帮助中小企业通过网站建设实现规模扩充和转变。

意外的问题是,cocos2d源码并没有使用ARC。这就意味着,基于cocos2d开发游戏时,不能使用ARC。到目前为止,最好的解决方案就是将cocos2d代码添加为静态库(Static Library),然后就可以安全地将cocos2d静态库连接到支持ARC的目标项目程序当中了。

使用添加静态库的方式使cocos2d项目支持ARC,大致需要如下两个步骤。

将cocos2d代码添加为静态库。

重构cocos2d项目源码使之支持ARC。

接下来,我们执行上面两个步骤就可以将“HelloWorld”项目改为支持ARC。

1. 将cocos2d代码添加为静态库

①在项目导航面板中选择“HelloWorld”项目,然后单击TARGETS下面的“HelloWorld”这个Target,再选择“Build Settings”,找到“Apple LLVM 5.0-Language-Objective C”项目,展开可以看到“Objective-C Automatic Reference Countiong”选项为No,如图13.8所示,说明当前项目并没有使用ARC。

疯狂ios讲义之创建cocos2d项目(2)

展开iOS下的“Framework&Library”,选择“Cocoa Touch Static Library”模板,然后单击“Next”按钮,如图13.11所示。

②在项目导航面板中选择“HelloWorld”项目,然后找到libs组并删除。弹出如图13.9所示的确认对话框,单击“Remove References”按钮。不要单击“Move to Trash”按钮将这些文件移动至回收站中,因为之后还要使用到它们。

疯狂ios讲义之创建cocos2d项目(2)

③ 在项目导航面板中选择“HelloWorld”项目,然后单击TARGETS下面的“HelloWorld”这个Target,再单击HelloWorld下面的“Add Target”按钮,如图13.10所示。

疯狂ios讲义之创建cocos2d项目(2)

④ 展开iOS下的“Framework&Library”,选择“Cocoa Touch Static Library”模板,然后单击“Next”按钮,如图13.11所示。

疯狂ios讲义之创建cocos2d项目(2)

⑤ 为静态库命名,在“Product Name”中输入cocos2d-library,然后单击“Finish”按钮,将静态库目标程序添加到HelloWorld项目中,如图13.12所示。

⑥ 创建cocos2d-library目标程序后,选择它,可以看见“Build Settings”窗格,需要修改“Search Paths”中的两项内容,在右上角的搜索栏中输入“search”。将“Always Search User Paths”设置为Yes,将“User Header Searh Paths”设置为./**,如图13.13所示。

⑦在项目导航面板中选择“HelloWorld”项目,然后单击TARGETS下面的“HelloWorld”这个Target,选择“Build Phases”标签页,展开“Link Binary With Libraries”列表,如图13.14所示。

疯狂ios讲义之创建cocos2d项目(2)疯狂ios讲义之创建cocos2d项目(2)

疯狂ios讲义之创建cocos2d项目(2)

⑧单击列表下面的“+”按钮,加入刚才创建的cocos2d-library静态库,然后单击“Add”按钮,如图13.15所示。

⑨将cocos2d文件添加到建立的静态库目标程序中。选择“cocos2d-library”组并单击右键,选择“Add Files to‘HelloWorld’”,如图13.16所示。

疯狂ios讲义之创建cocos2d项目(2)

⑩找到并选择HelloWorld项目文件夹中的libs文件夹,同时选中“Create groups for any added folders”单选钮,选择“cocos2d-library”复选框,如图13.17所示。

疯狂ios讲义之创建cocos2d项目(2)

疯狂ios讲义之创建cocos2d项目(2)

2. 重构cocos2d项目源码使之支持ARC

将不支持ARC的cocos2d源码生成为静态库(Static Library)之后,接下来就是重构cocos2d项目源码使之支持ARC。非常幸运的是,Xcode的最新版本已经提供了这个功能,可以很方便地将原本不支持ARC的代码转换为支持ARC。

①从Xcode菜单栏选择“Edit”→“Refactor”→“Convert to Objective-C ARC”,再选择要转换的目标程序,如图3-18所示。

疯狂ios讲义之创建cocos2d项目(2)

②选择“HelloWorld”项目,不要选择“cocos2d-library”项目,然后单击“Check”按钮,如图13.19所示。

疯狂ios讲义之创建cocos2d项目(2)

③Xcode会尝试以支持ARC的方式生成代码,并弹出一个说明性对话框提示接下来将做些什么。单击“Next”按钮,会并列显示两个代码片段,可以查看到Xcode对哪些代码进行了修改。单击“Save”按钮,保存这些修改,如图13.20所示。

疯狂ios讲义之创建cocos2d项目(2)

④同时,Xcode还会修改HelloWorld项目中的设置信息,使项目支持Objective-C ARC(自动引用计数)。现在,代码就会以支持ARC的方式编译和运行了,如图13.21所示。

疯狂ios讲义之创建cocos2d项目(2)

————本文节选自《疯狂ios讲义(下)》

疯狂ios讲义之创建cocos2d项目(2)

另外有需要云服务器可以了解下创新互联scvps.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


文章标题:疯狂ios讲义之创建cocos2d项目(2)-创新互联
转载来于:http://jkwzsj.com/article/dipccs.html

其他资讯