2

我在这条线上收到以下分析器警告...

if ([datStartDate compare:now] == NSOrderedDescending) {

Receiver in message expression is an uninitialized value

这行代码出现在 IBAction 的中间。

我究竟做错了什么?

4

2 回答 2

4

如果您展开错误旁边的显示三角形(在左侧的错误导航器中),它将向您显示导致值未初始化的情况的确切代码路径。

你可能会想“但是,分析器,真的,这永远不会发生。”。虽然这可能是真的,但您正在代码中创建一个假设,由于错误或故意更改,该假设在未来可能不成立。这会增加代码库的脆弱性,并会导致维护问题。

修复代码,使其明确并删除假设。

于 2011-11-09T20:44:59.073 回答
0

至少有一个代码路径可以导致该行datStartDate仍未初始化。这意味着您从未将对象分配给datStartDate,甚至nil

于 2011-11-09T20:31:05.077 回答