疯狂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的目标项目程序当中了。

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

1. cocos2d代码添加为静态库

2.重构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

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所示。

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



 

本文转自 

fkJava李刚 51CTO博客,原文链接:http://blog.51cto.com/javaligang/1393820 ,如需转载请自行联系原作者

相关文章
|
6天前
|
IDE Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【9月更文挑战第27天】在移动应用开发的世界中,Android和iOS是两个主要的操作系统平台。每个系统都有其独特的开发环境、工具和用户群体。本文将深入探讨这两个平台的关键差异点,并分析这些差异如何影响应用的性能、用户体验和最终的市场表现。通过对比分析,我们将揭示选择正确的开发平台对于确保项目成功的重要作用。
|
3月前
|
Java Android开发 iOS开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
【7月更文挑战第8天】在移动应用开发的广阔天地中,Android与iOS两大平台各自占据着半壁江山。本文将深入探讨这两个平台在开发环境、用户界面设计、性能优化以及市场覆盖等方面的根本差异,并分析这些差异如何影响项目的成功。通过比较和分析,旨在为开发者在选择平台时提供更全面的视角,帮助他们根据项目需求和目标市场做出更明智的决策。
|
3月前
|
Linux Android开发 iOS开发
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的广阔舞台上,安卓与iOS两大操作系统各自占据着举足轻重的地位。本文深入探讨了这两个平台在技术特性、市场覆盖、用户群体和开发成本等方面的差异,并分析了这些差异如何影响项目的最终成功。通过比较分析,旨在为开发者提供决策依据,帮助他们根据项目需求和目标受众做出明智的平台选择。
|
4月前
|
Java 开发工具 Android开发
探索Android与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的广阔天地中,Android和iOS两大平台各自占据着半壁江山。本文将深入探讨这两个平台在开发过程中的关键差异点,包括编程语言、开发工具、用户界面设计、性能优化以及市场覆盖等方面。通过对这些关键因素的比较分析,旨在为开发者提供一个清晰的指南,帮助他们根据项目需求和目标受众做出明智的平台选择。
|
23天前
|
IDE 开发工具 Android开发
安卓与iOS开发对比:平台选择对项目成功的影响
【9月更文挑战第10天】在移动应用开发的世界中,选择正确的平台是至关重要的。本文将深入探讨安卓和iOS这两大主要移动操作系统的开发环境,通过比较它们的市场份额、开发工具、编程语言和用户群体等方面,为开发者提供一个清晰的指南。我们将分析这两个平台的优势和劣势,并讨论如何根据项目需求和目标受众来做出最佳选择。无论你是初学者还是有经验的开发者,这篇文章都将帮助你更好地理解每个平台的特性,并指导你做出明智的决策。
|
26天前
|
Java 开发工具 Android开发
安卓与iOS开发:平台选择对项目成功的影响
在移动应用开发的浩瀚宇宙中,安卓和iOS两大星系璀璨夺目,各自拥有独特的光芒。本文将穿梭于这两个平台之间,探讨它们在开发环境、用户群体、成本效益等方面的差异,以及这些差异如何影响一个项目的航向和终点。我们将从初学者的视角出发,逐步深入,揭示选择合适平台的重要性,以及如何根据项目需求做出明智的选择。无论你是即将启航的新手开发者,还是已经在这片星海中航行的老手,这篇文章都将为你提供有价值的导航信息。
41 2
|
1月前
|
Java 开发工具 Android开发
探索安卓与iOS开发的差异:平台选择对项目的影响
在移动应用开发的广阔天地中,安卓和iOS两大平台各自占据着重要的位置。本文旨在深入探讨这两个平台在开发过程中的主要差异,包括编程语言、开发工具、用户界面设计、性能优化以及市场分布等方面。通过对比分析,我们将揭示平台选择如何影响项目规划、执行效率和最终成果,为开发者在选择适合自己项目需求的平台时提供参考依据。
|
2月前
|
IDE 开发工具 Android开发
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的广阔天地中,安卓和iOS两大平台各领风骚,引领着技术进步的潮流。本文旨在深入剖析这两个平台在开发过程中的关键差异点,包括编程语言、开发工具、用户界面设计以及市场分布等方面。通过对比分析,我们不仅能更好地理解每个平台的独特优势,还能洞察这些差异如何影响项目决策和最终成果。无论你是开发者还是企业决策者,了解这些内容都将助你一臂之力,在选择适合自己项目的开发平台时做出更明智的决策。
|
2月前
|
IDE 开发工具 Android开发
探索iOS与安卓开发的差异:平台选择对项目成功的影响
【8月更文挑战第22天】在数字化时代,移动应用成为企业和个人展示创意、提供服务的重要工具。iOS和安卓作为两大主流平台,各自拥有独特的优势和限制。本文将深入探讨这两个平台在开发过程中的主要差异,以及这些差异如何影响项目规划、用户体验和市场策略。通过比较分析,旨在为开发者和企业决策者提供有价值的见解,帮助他们根据项目需求做出明智的平台选择。
|
2月前
|
Java Android开发 iOS开发
探索安卓与iOS开发的差异:平台选择对项目成功的影响
在移动应用开发的世界中,选择正确的平台是关键。本文通过比较安卓和iOS开发的核心差异,揭示平台选择如何影响应用的性能、用户体验和市场覆盖。我们将深入探讨各自的开发环境、编程语言、用户界面设计原则以及发布流程,以帮助开发者和企业做出明智的决策。
56 9