在Xcode 5之前的版本中,我们在创建项目时可以在项目设置中禁用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];
如果要手动引用计数(使用保留和发布),可以在构建设置中禁用ARC。
在项目导航器中选择项目。编辑器区域应显示一个带有四个选项卡的视图:信息,构建设置,构建阶段,构建规则。选择构建设置。
在这四个标题的左侧,应该有一个下拉列表,用于选择所需的目标。选择您不需要ARC的目标。
向下滚动以找到标题为“ Apple LLVM 5.0-语言-Objective-C”的部分。下有三个设置。最底下的应该是“ Objective-C自动引用计数”。将其设置为“否”,您将进行手动参考计数。
但是,修复所报告的问题可能是一个更好的选择。最好使用ARC。
解决错误
您说您的错误发生在创建obis
数组的行上。这意味着以下一个或多个变量是int
而不是对象:
compteur1, compteur2, compteur3, compteur4, compteur5, nameC1, nameC2, nameC3, nameC4, nameC5
如果要将整数放入数组,则必须将其装箱为NSNumber
例如
NSArray* anArray = [NSArray arrayWithObjects: [NSNumber numberWithInt: 2], nil];
现在有一种简写形式,看起来像这样:
NSArray* anArray = @[ @(2) ];
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句