objective-c - CGMutablePathRef 的自动释放?

标签 objective-c quartz-graphics

我正在为 iPhone 开发。我想通过 CGPathCreateMutable() 创建一个可变路径,并且我想从创建它的函数中返回它。我想在完成后调用 CGPathRelease()。但是因为我要归还它,所以我希望自动释放它。由于 Quartz 路径是一个 C 代码(并且看起来不像一个 Objective-C 对象),我不能对其调用自动释放是否正确?

编辑: 对于偶然发现这个问题的其他人,以下建议仅适用于返回核心基础对象的 C 函数。对于返回核心基础对象的 Objective-C 方法,请参阅 Ownership regarding to returned Quartz objects

最佳答案

正确。自动释放池存在于基础层及以上(AppKit/UIKit 等)。它们对于 CoreFoundation/CoreGraphics 对象不存在。

解决此问题的简单方法是重命名您的函数。如果您的函数当前命名为:

CGMutablePathRef myAwesomePath(params...);

然后你应该将它重命名为:

CGMutablePathRef createMyAwesomePath(params...);

这样您就可以安全地按照 Create rule 返回具有 +1 保留计数的对象.

关于objective-c - CGMutablePathRef 的自动释放?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2819548/

相关文章:

ios - 在第一个大写字母处拆分 NSString

ios - 当应用程序被杀死时是否可以显示警报

ios - 设置背景颜色弄乱了drawRect

iphone - UIimageView 圆顶角 BezierPath 不起作用?

objective-c - NSString 会写多高多宽?

iphone - 将 UIImage 大小减小到可管理的大小(减少字节)

ios - 两种方法竞争,运行完成方法一次

ios - 使用 UIImages 创建 gif

macos - 访问帧缓冲区 OSX 10.7

iphone - 相对于背景图像的负文本颜色