我在这条线上收到以下分析仪警告......
if ([datStartDate compare:now] == NSOrderedDescending) {
Receiver in message expression is an uninitialized value
代码行出现在IBAction的中间。
我做错了什么?
答案 0 :(得分:4)
如果展开错误旁边的显示三角形(在左侧的错误导航器中),它将显示导致未初始化值的情况的确切代码路径。
你可能会想“但是,分析师,真的,永远不会发生。”虽然这可能是真的,但是您在代码中创建了一个假设,由于错误或故意更改,将来可能不会成立。这会增加代码库的脆弱性,并导致维护问题。
修复代码,使其明确并删除假设。
答案 1 :(得分:0)
至少有一个代码路径可以导致此行datStartDate
仍然未初始化。这意味着您从未将对象分配给datStartDate
,甚至没有分配nil
。