有时我在使用 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];
我希望这样当 change 时self.fillColor
,我希望数组中的值也发生变化。我显然可以创建一个指针,即CGColorRef *fillColor
,但这样做我将如何管理内存(即释放、保留它)以及我的 setter 方法将如何改变?这真的让我很困惑。