検討:
@interface MyView : UIView
@property (strong, nonatomic) UILabel * label ;
@end
と:
@implementation MyView
@synthesize label ;
- (void) setLabel: (UILabel *) label_ {
self->label = label_ ;
// ... custom stuff for when the label is changed from the outside
}
@end
理想的には、デフォルトの合成セッターを「トラップ」して、ARCの下で「正しいことを実行」し、この新しいラベルでコンテキストを「更新」するために必要なものだけを追加するのが理想的です。
私はその行が心配です:
self->label = label_ ;
自分で提供することを選択しなかった場合に、デフォルトの合成セッターが保証するであろう不変条件をバイパスするだけです。
ARCでデフォルトの合成セッターを「オーバーライド」する適切な方法は何ですか?