Obj-C,消息表达式中的Receiver是未初始化的值,分析器警告?

时间:2011-11-09 20:18:49

标签: objective-c xcode cocoa-touch analyzer

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

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

Receiver in message expression is an uninitialized value

代码行出现在IBAction的中间。

我做错了什么?

2 个答案:

答案 0 :(得分:4)

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

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

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

答案 1 :(得分:0)

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