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まだ初期化されていない状態でこの行につながる可能性のあるコード パスが少なくとも 1 つあります。つまり、オブジェクトを に割り当てたことがなく、 にも割り当てていdatStartDateませんnil

于 2011-11-09T20:31:05.077 に答える