Xcode 分析器警告 - 字典值不能为 nil



这个问题是好奇心的问题之一。

我有两个预先存在的 Xcode 项目,它们会生成不同的分析器警告。 我无法确定设置差异。

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

(一个更典型的例子是某些NilString可能是或可能不是nil - 保持简单。

如果我在一个项目中运行分析器,我会在第二行Dictionary value cannot be nil。 第二个项目中的代码相同,没有消息。 一个新的 Xcode 项目(在 v6.2 中创建(生成消息,因此我相信这是(适当地(默认设置。

我很好奇这个设置可能在哪里。 我在构建设置中没有看到明显的设置。

可能是一个项目正在使用 ARC,而另一个项目没有。

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

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

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

相关内容

最新更新