【发布时间】:2010-05-25 04:04:59
【问题描述】:
我最近询问了关于自动释放返回的石英对象的问题: Autorelease for CGMutablePathRef?
Dave DeLong 回答了我的问题,即石英(或任何 NS 基础对象)没有自动释放,我应该使用 Create Rule。但是文档上的命名约定说,
Core Foundation 命名约定,尤其是“create”一词的使用,仅适用于返回 Core Foundation 对象的 C 函数。 Objective-C 方法的命名约定由 Cocoa 约定控制,无论该方法返回的是 Core Foundation 还是 Cocoa 对象。
由于我的函数是目标 C 对象中的消息,因此将其命名为 createSomething 似乎并不合适。我仍然想返回这个对象。解决这个问题的最佳方法是什么?我应该使用Get Rule,然后让调用者明确保留它吗?但这不在 Cocoa 约定范围内。处理这个问题的正确方法是什么?
【问题讨论】:
-
当我说 CF 对象没有自动释放时,实际上没有,除非您可以免费将它们连接到 Cocoa 对象。只是为了消除混乱。 :)
-
谢谢。这让我想知道演员在下面到底做了什么。
标签: objective-c quartz-graphics