0

iPhone アプリ全体を分析したところ、Logic Errorが表示されました。

UILabel *first_label = (UILabel *) [cell viewWithTag:1];
UILabel *second_label = (UILabel *) [cell viewWithTag:2];

[first_label setText:@"text"];
[second_label setText:@"text"];

NSLog(@"%@", first_label); // it exist
[first_label setFrame:CGRectMake(first_label.frame.origin.x, 10, 10, 10)];

この問題が発生します:

メッセージ 'frame' の受信者は nil であり、ガベージになる型 'CGRect' の値を返します

私が変更した場合:

[first_label setFrame:CGRectMake(first_label.frame.origin.x, 10, 10, 10)];

[first_label setFrame:CGRectMake(10, 10, 10, 10)];

彼は幸せです。それは正常ですか?問題なくラベルを取得でき、どこでも使用できますが、フレームを取得しようとすると、その問題が表示されます。アイデアはありますか?

4

1 に答える 1

2

アナライザーは、タグ 1 のビューをコードに追加している場所がないことを確認するだけです。それが理由です。

UILabel *first_label = (UILabel *) [cell viewWithTag:1]; 

おそらく nil を返します。そこにブレークポイントを設定し、戻り値を確認するだけです。nil でない場合は、アナライザーがコード内の何かを理解していない可能性があります。コードも完全ではないためです。

于 2011-11-13T17:29:36.323 に答える