怎么让cocos2d能用ARC

目前Cocos2D自身不支持ARC

第一种方法:

1.在Xcode中打开ARC

2.点击项目文件,Build Setting里Always Search User Paths设为Yes。将User Head Search Paths设为Cocos2d源代码的路径(例如:/Users/ming/Documents/cocos2d-iphone/**),并且选择recursive。

3.打开cocos2d的源代码文件夹,找到cocos2d-ios.xcodeproj文件,将其拖入你的项目里。再次点击项目文件,点Build Phases,从Link Binary With Libraries中添加libcocos2d.a,libCocosDenshion.a。此时文件名是红色的,不用管。

4.删除libs文件夹

5.运行后 main报错,改为:

#import <UIKit/UIKit.h>
int main(int argc, char *argv[]) {
    @autoreleasepool {
    int retVal = UIApplicationMain(argc, argv, nil, @"AppController");
        return retVal;

 }

}


第二种方法:

1.删除libs文件夹 删除时选Remove References

2.创建cocos2d静态库  点击 Add Target,在弹出的对话框里,展开Framework&Library组,选择Cocoa Touch Static Library. 点next.再在出来的对话框里输入这个静态库的product Name并取消下面的两个复选框,点Finish. 然后会回到xcode里 选中创建的静态库 在它的Build Settings里Always Search User Paths设为Yes。将User Head Search Paths设为./**

3.在TARGETS里选中原目标程序,在Build Phases里的Link Binary With Libraries里添加libcocos2d-library.a

4.点击xcode的File->Add Files to "name- of-project", 找到libs文件夹,再取消下面Destination的复选框,Folders选Create groups for any added folders,Add to targets 只选你创建的静态库。然后add.

5.运行一下程序。

6.点击xcode的Edit->Refactor->Convert to Objective-c ARC 。弹出的对话框中选择你的原目标程序,不要选cocos2d-library目标程序。点Check。然后会弹出个对话框告诉你你的项目会有那些地方会进行修改,点save. 

7.如果没报错就OK了。报错:dyld: lazy symbol binding failed: Symbol not found: _objc_setProperty_nonatomic

这个错误就是说App可执行文件里引用了objc_setProperty_nonatomic或objc_setProperty_atomic这些函数。但是代码里显然没有直接调用这2个函数,应该是系统在编译时生成的

静态库在编译时,Deployment Target一定要低于和等于工程的Deployment Target。否则容易出现低版本iOS运行不兼容的情况。


修改错误:在TARGETS里点击你创建的静态库-》Build Settings里找到IOS Deployment Target 版本改小

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值