设置ARC有效或者无效

在编译单位上,可以设置ARC有效或者无效。比如对每个文件可以选择使用或者不使用ARC,一个应用程序中可以混合ARC有效或者无效的二进制形式。

  设置ARC有效的编译方法如下所示:(Xcode4.2开始默认设定对所有文件ARC有效)

    *使用clang(LLVM编译器)3.0或以上版本

    *指定编译器属性为"-fobjc-arc"

  设置ARC有效或者无效,一般两种方式:对所有文件统一操作、对部分文件操作。

  1.对所有文件统一操作

  需求:有的编程人员为了能更好的理解内存管理机制,刻意将编译器指定为ARC无效。

  操作:targets  -->  Build Settings  -->  Apple LLVM 7.1-Language-Objective C  -->  Objective-C Automatic Reference Counting  -->  将其设置为NO。

  2.对部分文件操作

  需求:Xcode中经常需要导入一些第三方的代码文件,如果项目的编译器指定为ARC机制,但是导入的文件是非ARC机制的,处理这种情况时,只要告诉编译器将这个外来的文件按非ARC规则进行编译,其他的文件照常按ARC规则编译。

  操作:targets  -->  Build Phases  -->  展开Compile Sources  -->  找到非ARC机制的文件,在其后的Compiler Flags一栏双击后,并输入-fno-objc-arc。

  需求:Xcode中经常需要导入一些第三方的代码文件,如果项目的编译器指定为非ARC机制,但是导入的文件是ARC机制的,处理这种情况时,只要告诉编译器将这个外来的文件按ARC规则进行编译,其他的文件照常按非ARC规则编译。

  操作:targets  -->  Build Phases  -->  展开Compile Sources  -->  找到非ARC机制的文件,在其后的Compiler Flags一栏双击后,并输入-fobjc-arc。

时间: 2024-10-12 23:00:50

设置ARC有效或者无效的相关文章

Xcode 设置 ARC&MRC混用

如果你的项目使用的非 ARC 模式,则为 ARC 模式的代码文件加入 -fobjc-arc 标签.如果你的项目使用的是 ARC 模式,则为非 ARC 模式的代码文件加入 -fno-objc-arc 标签.添加标签的方法:打开:你的target -> Build Phases -> Compile Sources.双击对应的 *.m 文件在弹出窗口中输入上面提到的标签 -fobjc-arc / -fno-objc-arc Xcode 设置 ARC&MRC混用

关于opencv设置视频的属性无效问题

自己最近做一个项目,采用Opencv2.4.10+MFC处理,结果发现,在视频处理过程中,采用bool VideoCapture::set(int propId, double value)函数设置图像的分辨率,返回值为0,查看opencv2.4.10文档,是这样的 propId – Property identifier. It can be one of the following:– CV_CAP_PROP_POS_MSEC Current position of the video fi

android开发,设置listview的高度无效

一般是在item的layout中设置高度 android:layout_height="100dp" 但是发现这样后无效,因此找到解决办法,如下: android:minHeight="100dp"

Xcode 新版本如何设置ARC

新建项目完成后,点击左侧栏里的第一行,标题. 这时主界面就会出现很多设置的项目.在上方有一个搜索栏.输入language或者ARC. 具体找到ARC设置,即可改为YES或者NO,具体如图.

XCode为单独文件设置ARC

注:此文为摘抄性质 来源:http://blog.csdn.net/dehengxu/article/details/11537989 在xcode 4 中,选择 targets 中的一个target,选择Build Phase标签页,找到Compile Sources栏目,看到其中有name, 和 compile flags 列,双击你将要进行arc设置的文件,在弹出的pop窗口中输入 -fobjc-arc,回车关闭窗口:设置完成.在该文件中可放心的感受arc带来的轻松开发体验吧. "-fno

关于设置android:imeOptions属性无效的解决办法

在对Android的EditText控件进行设置时,经常会限定一下输入法的属性,设置右下角为完成或者搜索等,一般都会想到android:imeOptions属性,但是仅仅这么设置通常是无效的,还要搭配另外一些属性. <!-- 添加singleLine属性或者inputType属性, 注意inputType,我测试的是只能设为text --> <EditText android:id="@+id/editText1" android:layout_width="

关于 Mybatis 设置懒加载无效的问题

看了 mybatis 的教程,讲到关于mybatis 的懒加载的设置: 只需要在 mybatis 的配置文件中设置两个属性就可以了: <settings> <!-- 打开延迟加载的开关 --> <setting name="lazyLoadingEnabled" value="true" /> <!-- 将积极加载改为消息加载即按需加载 --> <setting name="aggressiveLazy

解决html设置height:100%无效的问题

通常我们需要让自己的网页内容能够更好的适配各种屏幕大小,会采用height:100%,但是我们发现问题出来了,height:100%无效,其实解决办法很简单 解决:你只需要在css处添加上html, body{ margin:0; height:100%; }即可. 原因:你让div的height="100%",执行网页时,css先执行到,而整个网页中的内容还没有完全载入,是获取不到div外面的<body>等的高度的,所以height="100%"也就不

mysql 5.6 设置long_query_time的值无效的原因

问题: 用网上找的开启慢查询日志的方法: 在/etc/my.cnf中添加 long_query_time=1 slow_query_log log_queries_not_using_indexes=1 然后再重启mysql. 慢查询日志确实开起来了,用select sleep(0.5),select sleep(1)来测试long_query_time的设置是生效的.但是在实际使用中在慢查询日志文件中出现了很多查询时间在小于1s的记录. 原因: 一.在mysql5.6英文手册的"5.2.5 T