クラスのメソッドで値を割り当てる正しい規則は、セッターバージョンを使用しないことです。
次のようなinitメソッドがあるとします。
// Class header
@property (nonatomic, weak) id <DelegateType> delegate;
@property (nonatomic, strong) NSString *stringData;
@synthesize delegate = _delegate;
@synthesize stringData = _stringData;
- (id)initWithParams:(NSString *)aString delegate:(id<DelegateType>)aDelegate
{
// initialization happens here
}
ARC以前では、次の方法で正しい保持ポリシーを確保します。
stringData = [aString retain];
self.delegate = aDelegate;
ARCを使用する場合、割り当てをどのように行い、ivarが早くリリースされないようにするのでしょうか。
セッターオーバーライドの場合、舞台裏でどのような作業が行われているのかわからないので、できないという印象を受けました。
self.stringData = aString
正しい初期化パターンは何ですか?