2

在 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];
4

2 回答 2

7

如果您想要手动引用计数(使用保留和发布),您可以在构建设置中禁用 ARC。

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

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

向下滚动以找到标题为“Apple LLVM 5.0 - 语言 - Objective-C”的部分。下面有三个设置。最下面的应该是“Objective-C Automatic Reference Counting”。将其设置为“否”,您将获得手动引用计数。

但是,修复报告的问题可能是更好的选择。使用 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) ];
于 2013-10-28T15:15:56.987 回答
2

以下是我推荐的步骤:

  1. 选择您的项目或 plist
  2. 去构建设置
  3. 选择级别
  4. 向下滚动到 Object-C Automatic Reference Counting,如屏幕截图所示
  5. 从下拉列表中选择否
于 2014-03-05T00:49:48.770 回答