CG要素を扱うときに混乱することがあります。次のシナリオは単純に見えますが、問題が発生します。
とCGColorRef
呼ばれるプロパティがfillColor
あり、setterメソッドを次のように手動で定義します。
@property(nonatomic) CGColorRef fillColor;
- (void) setFillColor:(CGColorRef)fillColor
{
CGColorRetain(fillColor);
CGColorRelease(_fillColor);
_fillColor = fillColor;
}
ある値にした後_fillColor
、次のように配列に格納します。
_fillColors = [[NSArray alloc] initWithObjects:(id)_fillColor, nil];
変更するself.fillColor
と、配列の値も変更されるようにしたいと思います。明らかにポインタを作成することはできますCGColorRef *fillColor
が、そうすることで、メモリをどのように管理し(つまり、解放して保持し)、セッターメソッドをどのように変更しますか?これは本当に私を混乱させます。