Xcode Analyzer警告 - 字典值不能为零

时间:2014-12-19 16:42:10

标签: ios xcode nsdictionary analyzer

这个问题是好奇心之一。

我有两个预先存在的Xcode项目,它们会生成不同的分析器警告。我还没有找到设置差异。

NSString *someNilString;
NSDictionary *someDict=@{@"hi":someNilString};

(更典型的例子是someNilString可能或可能不是nil - 保持简单。)

如果我在一个项目中运行Analyzer,我会在第二行获得Dictionary value cannot be nil。第二个项目中的代码相同,没有消息。一个新的Xcode项目(在v6.2中创建)生成了消息,因此我认为(适当地)是默认值。

我很好奇这个设置可能是什么。我在Build Settings中没有看到明显的设置。

1 个答案:

答案 0 :(得分:0)

可能是一个项目使用ARC而另一个项目不是。

在ARC下,局部变量初始化为nil(零)。

在手动内存管理下,局部变量包含运行时堆栈中该位置的任何随机值。

因此,当Xcode评估someDict行时,已知ARC版本为nil。