クォーツでの描画に関して、最後からアップルのビデオを見ていました。スピーカーは、システムがキャッシュを処理できるように、CGGradientRefをivarに保存する必要があると述べました。だから私の最初の質問は、それはどのように機能するのかということです。グラデーションがそのオブジェクトに対して一度作成され、オブジェクトが再度作成されない限り、二度と作成されないという理由だけですか?
また、グラデーションはどこでリリースしますか?あなたはdeallocの他のivarsのようにそれをリリースしますか?
.h
@property (nonatomic, readonly) CGGradientRef gradient;
.m
- (CGGradientRef)gradient {
if (NULL == _gradient) {
CGColorSpaceRef rgb = CGColorSpaceCreateDeviceRGB();
_gradient = CGGradientCreateWithColors(rgb, (CFArrayRef)[NSArray arrayWithObjects:(id)[[UIColor colorWithRed:28./255 green:160./255 blue:255./255 alpha:1] CGColor], (id)[[UIColor colorWithRed:11./255 green:67./255 blue:107./255 alpha:1] CGColor], nil], nil);
CGColorSpaceRelease(rgb);
}
return _gradient;
}
CGGradientRefはどこでリリースできますか?ありがとう!