1

私はサブクラスUITableViewCell化しており、次の- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifierようなインスタンス変数を設定しています。

_image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]

Appleはとでアクセサを使用しないことを推奨しているため、私はアクセサを使用していませinitdealloc

ここまでは順調ですね。userInteractionEnabled私の質問は、画像に設定したい_imageを設定した後ですYES。ゲッターでそれを行うべきですか、それともivarを直接使用するべきですか?

self.image.userInteractionEnabled = YES;

または

_image.userInteractionEnabled = YES;

どのスタイルを使用するのが好ましいですか?

4

3 に答える 3

4

推奨事項は引き続き有効です。initで直接ivarを使用してください。そのプロパティにカスタムアクセサーを実装したことがある場合(現在または後で、ここで、またはサブクラス化する場合)、問題が発生する可能性があります。

于 2012-10-05T08:31:02.393 に答える
1

3番目のオプション:イメージをローカル変数に割り当て、それを使用して完全にセットアップし(たとえば、そのuserInteractionEnabled)、ローカル変数からインスタンス変数に割り当てます。

于 2012-10-05T15:42:11.810 に答える
-1

これはプロパティ値であるため、self.image ...の方が正確であるため、すべての通知が送信され、他の何かがオブジェクトを監視している場合は実行されます。_image ...を使用すると、通知は送信されません。

于 2012-10-05T08:29:24.807 に答える