これは、以前にカスタムretainedセッターを作成する方法です。
- (void)setMyObject:(MyObject *)anObject
{
[_myObject release], _myObject = nil;
_myObject = [anObject retain];
// Other stuff
}
プロパティが強いに設定されている場合、ARCでこれをどのように達成できますか?変数に強いポインタがあることをどのように確認できますか?
strong
はivarレベルで自動的に処理されるため、単に
- (void)setMyObject:(MyObject *)anObject
{
_myObject = anObject;
// other stuff
}
以上です。
注:自動プロパティなしでこれを行っている場合、ivarは
MyObject *_myObject;
その後、ARCが保持とリリースを管理します(ありがたいことに)。 __strong
はデフォルトで修飾子です。
答えを要約するだけです
.hファイル
//If you are doing this without the ivar
@property (nonatomic, strong) MyObject *myObject;
.mファイル
@synthesize myObject = _myObject;
- (void)setMyObject:(MyObject *)anObject
{
if (_myObject != anObject)
{
_myObject = nil;
_myObject = anObject;
}
// other stuff
}