• 如何在cocos2d项目中enable ARC


    如何在cocos2d项目中enable ARC

    基本思想就是不支持ARC的代码用和支持ARC的分开,通过xcode中设置编译选项,让支持和不支持ARC的代码共存. 

    cocos2d是ios app开发中最主流的2d游戏引擎,但是cocos2d开发的时候,苹果还没有推出 ARC(automatic reference counting,一种辅助内存管理的机制,编译器自动在代码中加入内存管理的语句,防止因开发者的疏忽造成的内存泄露和崩溃问题).所以如果你用cocos2d模版生成的工程,ARC是关闭的.如果直接enable ARC, 就会出现很多编译错误.

    要想享用ARC的好处,就要自己想办法了.

    基本思路就是,将cocos2d的文件不使用ARC.在xcode中是可指定部分源文件用arc.

    方法来自于这个帖子 http://www.tinytimgames.com/2011/07/22/cocos2d-and-arc/

    该文介绍的方法是,将cocos2d作为单独的工程编译(无arc),将库文件引用到enable ARC的工程中,稍加修改即可.

    但是回复中有更简单的方法(这个回复的人也真够不客气的,有兴趣去看一下horseshoe7的回复).个人实操步骤如下:

    注意:

      - 如果你用cocos2d v2.0以后的版本,那么你有福了,4,5,6,7都不会出错,可跳过

      - 如果你用cocos2d v1.1,那么你只会碰到4的问题,5,6,7可以跳过.

      - 如果你和我一样用了1.0.1,那么就必须修改下述所有地方. 

    1. 使用LLVM: 在build setting中设置默认编译器,搜"LLVM", 选Apple LLVM compiler 3.1

    2. enable ARC: 上述界面,搜auto, 将Object C Automatic Reference Counting设为Yes.

    3. complie source build phase中有列出所有的.m文件,复选中cocos2d的那些文件,回车,输入"-fno-objc-arc",回车. 这样,这些文件就不会被ARC检查. 建议将cocos2d自己生成的AppDelegate.m和RootViewController.m都关ARC.只在自己的代码中使用ARC.

  • 相关阅读:
    JAVA线程池
    数据库三范式和反三范式
    nvm切换node的版本
    vue源码解析一
    css实现气泡样式
    openlayer 地图实现圈选框选清楚 选择地图区域
    vs code开发常用插件
    记录几个好用的工具
    03 使用css改变页面样式
    02 常用的html元素
  • 原文地址:https://www.cnblogs.com/dyllove98/p/3187143.html
Copyright © 2020-2023  润新知