Oh!Coder

Coding Life

让cocos2d支持ARC

| Comments

今天在微博上看到一条cocos2d官网上的一篇文章,说cocos2d-iphone支持Android。点开链接大致看了一下,是通过第三方的工具来完成的。支持的内容基本上涵盖了大部分cocos2d的功能,除此之外这个工具还支持ARC特性。在文章的评论中看到还可以支持Box2d和Chipmunk。对于ARC特性的支持勾起了我想尝试一下让cocos2d支持ARC的念想。

索性Google了一下,在YouTube上看到一个一分多钟的视频(需要翻墙),演示了让cocos2d支持ARC。然后饶有兴趣的我也下载了一份cocos2d v2.x版本,但是按照视频的转换方式的过程中出现了一个小问题。固在此记录一下,一来可以方便自己以后查阅。二来可以分享给有相同想法的朋友。

首先,安装cocos2d很简单,一般情况下通过终端进入cocos2d的下载目录,然后执行一条./install-templates.sh命令就搞定了。过程中如果遇到什么问题可以到网上Google一下,这里就不多说了。下面直接说转换方法。

第一步先创建一个全新的cocos2d的项目。

pic

作为例子这里命名为TestARC

按照步骤创建完之后可以依次选择Xcode工具栏上的Edit-\>Refactor-\>Convert to Objective-C ARC...。点开之后,会弹出一个窗口,让你选择要转换的文件。

pic

窗口中的选项默认是全选的并且是折叠的。现在我们取消全选,然后展开折叠项,到展开文件目录的最下面,选中目录最下面的四个.m文件,之后选择右下方的Check按钮。

pic

在上面提到的YouTube上视频的演示中是一次就转换完成了,但不知道是不是因为版本的原因,我在第一次转的时候遇到了一个错误提示。

pic

点开左侧的错误提示,转到文件中,看到具体的错误提示如下。

pic

Google了一下,修改方法很简单,只要在NSString前面添加一行\_\_unsafe\_unretained代码就可以了,这里注意一下unsafe前面是两个短下划线。添加完之后可以编译验证一下。

pic

这时候错误提示就消失了。现在我们再依次选择Edit-\>Refactor-\>Convert to Objective-C ARC...

pic

然后还会弹出选择要转换文件的窗口。依然选择文件目录中最下面的四个文件。然后点击右下方的Check 按钮。

pic

顺利的话这一次就会通过检查,之后会弹出进入ARC转换的步骤的窗口。

pic

转换完成之后,会弹出一个窗口,向你展示一开始你选取的四个文件当中改动的地方。

pic

此时点击右下方的Save按钮进行保存。但在保存之前,会弹出一个窗口提示你是否为此项目创建snapshots,可以根据你的需要进行选择,无论你选择Disable还是Enable都不会影响项目的转换,这一步操作跟转换无关。如果你对什么是snapshots不太了解,可以转向这里了解一下。

pic

好啦,现在转换工作完成。如果你不放心,可以查看下项目中.m的文件,你会发现所有和ARC特性无关的代码都已经被清除掉。

现在就可以抛开烦人的计数器,把它交给勤劳的编译器去吧。现在可以在ARC状态下自由的书写代码啦~

pic

Comments