`
咖啡动力
  • 浏览: 440440 次
  • 性别: Icon_minigender_2
  • 来自: 北京
社区版块
存档分类
最新评论

在Xcode4.5中禁用ARC(Automatic Referencing Counting)

 
阅读更多
最近升级了xcode4.5,用上了ios6的SDK。但用着用着发现一个比较烦的问题,以前很多代码提示错误,发现原来因为xcode启用了ARC,当ARC启用后会自动在代码中加入retain、release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。虽然有很大的好处,但是对于以前代码中加的retain、release等会因此报错,解决办法很简单,禁用ARC即可,方法如下:

可以在 Build Setting => "Apple LLVM compiler 3.0-Auto Reference Counting“ => "Mugrate cide from MRR to ARC" 设置为 "MIGRATE code to ARC after building with PRECHECK" 这个就可以跳过烦人的预语法检查报错, 且自动转换成ARC。

禁用可以设置 Build Setting => "Apple LLVM compiler 3.0-Code Generation“ => “Objective-C automatic Reference Counting" 置为NO。

还可以设置 "Build Phases" => "Compile Sources" 中在禁用的源文件上加编译参数: -fno-objc-arc 。

基本的ARC使用规则
代码中不能使用retain, release, retain, autorelease
不重载dealloc(如果是释放对象内存以外的处理,是可以重载该函数的,但是不能调用[super dealloc])
不能使用NSAllocateObject, NSDeallocateObject
不能在C结构体中使用对象指针
id与void *间的如果cast时需要用特定的方法(__bridge关键字)
不能使用NSAutoReleasePool、而需要@autoreleasepool块
不能使用“new”开始的属性名称 (如果使用会有下面的编译错误”Property’s synthesized getter follows Cocoa naming convention for returning ‘owned’ objects”)

使用ARC的好处
Objective-C的代码变得简单多了,因为我们不需要担心烦人的内存管理,担心内存泄露了
代码的总量变少了,看上去清爽了不少,也节省了劳动力
代码高速化,由于使用编译器管理引用计数,减少了低效代码的可能性

不好的地方
记住一堆新的ARC规则 — 关键字及特性等需要一定的学习周期
一些旧的代码,第三方代码使用的时候比较麻烦;修改代码需要工数,要么修改编译开关
分享到:
评论

相关推荐

    Xcode4.5缺少的DevToolCore.framework

    Xcode4.5缺少的DevToolCore.framework,老版本Xcode4.5中拷贝出来的。考虑到有朋友没有备份老版本Xcode,单独考出这个文件,解决PBXCP报错。 将这个文件解压放到报错提示的位置即可(/Contents/Developer/Library/...

    Xcode4.5快速Doxygen文档注释

    标题 "Xcode4.5快速Doxygen文档注释" 指向的是使用Xcode 4.5版本配合Doxygen工具来快速为源代码生成专业文档的过程。Doxygen是一款广泛使用的开源文档生成器,它能从C++, C, Objective-C, C#, Java, IDL, PHP, ...

    macos-lion-dp4-10.8+ios6+xcode4.5.zip

    标题中的"macos-lion-dp4-10.8+ios6+xcode4.5.zip"揭示了这个压缩包包含的是苹果操作系统Mac OS X Lion的第四个开发者预览版(DP4)以及iOS 6和Xcode 4.5的相关内容。Mac OS X Lion是苹果在2011年推出的操作系统,它...

    IOS 精选源码之 下拉刷新 已封装好,更新到xcode4.5

    综上所述,"IOS 精选源码之 下拉刷新 已封装好,更新到xcode4.5"为iOS开发者提供了一个便捷的下拉刷新实现,帮助他们快速地在应用中集成这一功能,同时提供了示例代码以便理解和学习。不过,为了适应不断变化的技术...

    win7+虚拟机9+mac lion 10.8+XCODE 4.5 安装说明

    这几天安装好了IOS开发软件,所以分享下安装过程。 win7+虚拟机9+mac lion 10.8+XCODE 4.5 安装说明 非常详细 里面包含所有安装软件的下载地址和说明。

    StoryboardTest

    除了属性自动绑定,Xcode 4.5还在Interface Builder(故事板编辑器)中引入了多项增强,包括更好的Auto Layout支持,使得开发者在设计用户界面时能更灵活地控制布局,适应不同设备和屏幕尺寸。在"StoryboardTest"中...

    Xcode 4.5.1 Release Notes

    - **在Xcode应用程序中切换标签页时的性能改进**(问题编号:12364395):Xcode 4.5.1提高了在不同标签之间切换时的流畅度,减少了卡顿现象,从而提高了开发效率。 **调试改进** - **在模拟器上运行应用的稳定性和...

    ARC和非ARC模版宏定义和使用

    在iOS开发中,内存管理是至关重要的,而ARC(Automatic Reference Counting)和非ARC是两种不同的内存管理机制。ARC是Apple引入的一种自动引用计数技术,极大地简化了内存管理,而非ARC则是传统的手动引用计数。这篇...

    Xcode 对应路径下的arc文件

    这是Xcode旧版本的arc文件,用于解决跟新后找不到库的错误

    xcode报错SDK does not contain 'libarclite' at the path

    在iOS开发过程中,Xcode是苹果官方推荐的集成开发环境(IDE)。然而,开发者们时常会遇到各种各样的错误,其中“SDK does not contain 'libarclite' at the path”是一个常见的问题,主要与Apple的Automatic ...

    iOS 5 ARC完全指南

    《iOS 5 ARC完全指南》深入解析了自动引用计数(Automatic Reference Counting,简称ARC)在iOS开发中的应用与工作原理。ARC是苹果在iOS 5中引入的一项技术革新,旨在简化内存管理,减少开发者在手动管理内存时可能...

    免下载旧版code,现成arc包拖入xcode既可解决

    Xcode14.3 File not found libarclite_iphonesimulator.a and libarclite_iphoneos.a,xocde14.3会删除xocde的arc文件夹,致使项目报错,解决办法,把旧版arc包拖入xocde即可

    arc文件包:解决Xcode 15 libarclite 文件缺失问题

    前往文件夹 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/ 将下载的arc 文件夹复制到lib文件夹下

    Xcode根据编译次数自动增加Build属性(Xcode自带功能实现)

    根据给定文件内容,其中提到了关键的脚本命令“xcrun agvtool next-version -all”,这是一个在命令行中运行的命令,属于Xcode的命令行工具集的一部分,具体来说,是AGVTool(Automatic Versioning and Generation ...

    Programming in Objective-C, 第四版,ePub格式

    第四版主要更新了 iOS5 与 ARC 的内容,与最新的 Xcode 4.5 匹配。 目录: Table of Contents 1 Introduction Part I: The Objective-C Language 2 Programming in Objective-C 3 Classes, Objects, and Methods...

    libarclite-arc,xcode, 解决 Xcode 14.3,Xcode 15 旧项目可能报错

    解决 Xcode 14.3,Xcode 15 旧项目可能报错 SDK does not contain 'libarclite' at the path '/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/arc/libarclite_iphone...

    IOS最新源码之GIF图片显示,已封装成类,有例子,支持透明

    本文将深入探讨如何在iOS项目中实现GIF图片的显示,并结合提供的资源"IOS最新源码之GIF图片显示",讨论如何将这个功能封装成一个类别,以及如何在Xcode 4.5环境下进行开发。 首先,GIF是一种常见的动画格式,它通过...

    ARC完全学习指南

    ARC(自动引用计数,Automatic Reference Counting)是iOS开发中用于管理内存的技术,主要用于替代开发者手动管理对象引用计数。在iOS5引入ARC之后,这一技术得到了广泛的应用。学习ARC对于希望提高iOS开发技能的...

    lua 在Xcode中加语法高亮

    在Xcode中,为了提高代码的可读性和编辑体验,我们常常希望为Lua代码添加语法高亮显示。Xcode作为苹果公司的官方集成开发环境(IDE),主要用于iOS和macOS应用的开发,但它也支持其他语言的编写,包括Lua。 标题中...

    详解iOS应用开发中的ARC内存管理方式

    在项目设置中,将编译器切换为LLVM 3.0(现为LLVM 4.1或更高版本),启用“Objective-C Automatic Reference Counting”选项,然后通过Xcode的Refactor菜单选择Convert to Objective-C ARC,Xcode会自动处理转换过程...

Global site tag (gtag.js) - Google Analytics