使用Xcode 5禁用ARC

use*_*565 2 objective-c compiler-warnings automatic-ref-counting xcode5

在5之前的Xcode版本中,我们可以在创建项目时在项目设置中禁用ARC.现在ARC给我带来了这个问题.

使用属性列表文件,对于读取步骤,编译器给出了一个错误:"ARC不允许将'int'隐式转换为'id'".我没有与Xcode 4相同的代码有这个问题.在我的属性列表文件中,键是数字,也在我的viewController.m中当我禁止ARC作为目标时,警告仍然存在.

我看不出如何添加编译器标志.代码(带法语字符串):

NSString *error;
NSString *rootPath = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) objectAtIndex:0];


NSString *plistPath = [rootPath stringByAppendingPathComponent:@"Save.plist"];

NSArray *keys = [NSArray arrayWithObjects:@"valeurCompteur1", @"valeurCompteur2", @"valeurCompteur3", @"valeurCompteur4", @"valeurCompteur5", @"nomCompteur1", @"nomCompteur2", @"nomCompteur3", @"nomCompteur4", @"nomCompteur5", nil];

NSArray *objs = [NSArray arrayWithObjects: compteur1, compteur2, compteur3, compteur4, compteur5, nameC1, nameC2, nameC3, nameC4, nameC5, nil];
Run Code Online (Sandbox Code Playgroud)

Jer*_*myP 7

如果要进行手动引用计数(使用保留和释放),可以在构建设置中禁用ARC.

在项目导航器中选择项目.编辑器区域应该显示一个包含四个选项卡的视图:信息,构建设置,构建阶段,构建规则.选择构建设置.

在这四个标题的左侧,应该有一个下拉列表,用于选择所需的目标.选择您不希望ARC的目标.

向下滚动以找到标题为"Apple LLVM 5.0 - 语言 - 目标-C"的部分.根据有三种设置.底部应该是"Objective-C自动参考计数".将其设置为"否",您将进行手动引用计数.

但是,修复报告的问题可能是更好的选择.使用ARC比使用ARC更好.

修复错误

您说您的错误发生在您创建obis阵列的行上.这意味着以下一个或多个变量是一个int而不是一个对象:

compteur1, compteur2, compteur3, compteur4, compteur5, nameC1, nameC2, nameC3, nameC4, nameC5
Run Code Online (Sandbox Code Playgroud)

如果要将整数放入数组中,则必须将其作为NSNumber例如

NSArray* anArray = [NSArray arrayWithObjects: [NSNumber numberWithInt: 2], nil];
Run Code Online (Sandbox Code Playgroud)

现在有一种速记形式的写作,看起来像这样:

NSArray* anArray =  @[ @(2) ];
Run Code Online (Sandbox Code Playgroud)