ARC 中CGColorSpaceRef内存问题 potential leak of an object&nb
在许多Cocoa应用中,你可以使用Core Foundation样式的对象,不管是来自于Core Foundation框架本身(例如,
CFArrayRef
或
CFMutableDictionaryRef),还是来自于诸如Core
Graphics一样采用Core Foundation约定的框架(你可能使用向
CGColorSpaceRef
and
CGGradientRef样式的类型)。
编译器不会自动管理Core Foundation对象的生命周期;你必须调用符合Core Founda内存管理规则的CFRetain和CFRelease方法(或者合适的特殊类型变体)来释放对象。
以上片段摘自
http://wiki.eoe.cn/page/iOS_blog_page_121623.html
//这个地址里对arc的解析比较详细
CGColorSpaceRef baseSpace = CGColorSpaceCreateDevice RGB();
CGGradientRef gradient = CGGradientCreateWithColo rComponents(baseSpace, colors, NULL, 3);
CGColorSpaceRelease(baseSpace);
CGContextSaveGState(context);
CGContextAddEllipseInRec t(context, CGRectMake(centerPoint.x-15, rect.size.height-42.5f, 25, 25));
CGContextClip(context);
CGContextDrawLinearGradi ent (context, gradient, CGPointMake(0, 0),CGPointMake(0,rect.size.height), 0);
CGContextRestoreGState(context);
CGGradientRelease(gradient);