OC中ARC forbids explicit message send of release错误

在ios编程中,如果成员变量为对象,我们需要对成员变量内存管理,否则,会造成内存泄露。即我们要对成员变量进行手动的内存释放。

很显然,是ARC的问题。

错误原因:在创建工程的时候点选了“Use Automatic Reference Counting”选项,但是又调用了对象的release方法

ARC是什么?

ARC是iOS 5推出的新功能,全称叫 ARC(Automatic ReferenceCounting)。简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自动地由编译器完成了。该机制在iOS 5/ Mac OS X 10.7 开始导入,利用 Xcode4.2可以使用该机制。简单地理解ARC,就是通过指定的语法,让编译器(LLVM3.0)在编译代码时,自动生成实例的引用计数管理部分代码。有一点,ARC并不是GC,它只是一种代码静态分析(StaticAnalyzer)工具。

解决办法:选择要项目,双击中间的工程名称,进入build setting

将中间的Objective-C Automatic Reference Counting改为no

时间: 2024-10-10 13:59:06

OC中ARC forbids explicit message send of release错误的相关文章

OC中ARC forbids explicit message send of release错误(转)

ARC forbids explicit message send of'release' 很显然,是ARC的问题. 错误原因:在创建工程的时候点选了“Use Automatic Reference Counting”选项,但是又调用了对象的release方法 ARC是什么? ARC是iOS 5推出的新功能,全称叫 ARC(Automatic ReferenceCounting).简单地说,就是代码中自动加入了retain/release,原先需要手动添加的用来处理内存管理的引用计数的代码可以自

关于“ARC forbids explicit message send of release”错误(转载)

如果你在进行release,retain相关操作的时候发现提示了这样一条错误.这是由于在新建工程的时候使用了ARC功能,即点选了“Use Automatic Reference Counting”选项.解决这个问题很简单: 在老板的xcode中,打开“Build Setting”,找到“Objective-C Automatic Reference Counting”项,将它的值设置成“NO” 在较新的Xcode中如4.2,打开“Build Setting”,找到"CLANG_ENABLE_OB

libXml ARC forbids explicit message send of'release'

'release' is unavailable: not available in automatic reference counting mode ARC forbids explicit message send of'release' 'release' is unavailable: not available inautomatic reference counting mode 解决办法: 打开当前工程,打开"Build Settings",找到Objective-C

IOS开发 ARC forbids explicit message send of 'autorelease'错误解决办法

在ios中经常会遇到:ARC forbids explicit message send of 'autorelease' 或“ARC forbids explicit message send of release”这样的错误.原因可能是项目使用了arc机制而有些文件禁止使用而报错. 解决方法: 1.禁用在Xcode中的特定文件的ARC 点击项目名,在中间一栏选择targets,然后选择build phases选项. 展开Compile Sources,找到你报错的文件名,然后双击添加-fno

ARC forbids explicit message send of release

解决方法: 点击一下工程,工程-->"Build Settings"-->找到Objective-C Automatic Reference Counting项-->将它的值设置为NO.ok 找到Objective-C Automatic Reference Counting项 ARC forbids explicit message send of release

解决问题ARC forbids explicit message send of 'release'

一.问题 用XCODE5新建工程,COPY老工程代码,编译出现以下错误: ARC forbids explicit message send of 'release' 二.解决 工程-->"Build Settings"-->找到Objective-C Automatic Reference Counting项-->将它的值设置为NO. 再次编译,就没这个错误了. 解决问题ARC forbids explicit message send of 'release'

ARC forbids explicit message send of'retain'解决办法

项目中导入一些开源的类库,里面会爆出一些ARC forbids explicit message send of'retain' 这种问题 解决方法: 点击项目Target -> 找到"Build Settings" -> 找到"Compile Sources" -> 找到出错的类,在对应类的"Compiler Flags"中添加"-fno-objc-arc" 如果你不是在wb145230博客园看到本文,请点

ARC forbids explicit message send of "autorelease"

答:开了ARC就不能发送autorelease消息了

(知其所以然 主题2)从底层分析OC中ARC和非ARC下深复制和浅复制

今天,在坊间听到有人在争论OC中关于NSString的深浅复制,听了下,感觉很有必要来一个分析总结,让我们从底层去了解OC中深浅复制的运作机制. 所谓copy就是在原有对象的基础上产生一个副本对象,遵循最关键的两点原则: 1. 改变原对象的属性和行为不会对副本对象产生任何影响 2. 改变副本对象的属性和行为不会对原对象产生任何影响 在理解了这一层之后,我们一起来研究下deep copy 和 shallow copy,因为苹果是一个非常注重性能的公司,所以拷贝在底层实现没那么简单: 以NSStri