猿问

理解Cocoa和目标C的参考计数

理解Cocoa和目标C的参考计数

我刚刚开始研究Object-C和Cocoa,以便使用iPhoneSDK。我对C很满意mallocfree概念,但可可的参考计数方案使我相当困惑。我听说一旦你明白了它是非常优雅的,但我只是还没有渡过难关。

如何releaseretainautorelease工作和使用它们的惯例是什么?

(或者没有做到,你读到了什么帮助你得到它的书?)


皈依舞
浏览 414回答 3
3回答

繁花不似锦

如果您了解保留/发布的过程,那么对于已经建立的Cocoa程序员来说,有两个“duh”规则是显而易见的,但不幸的是,对于新来的程序员来说很少清楚地说明这一点。如果返回对象的函数具有alloc, create或copy以它的名义,那么这个物体就是你的了。你必须打电话[object release]当你完成它的时候。或CFRelease(object),如果它是一个核心-基础对象。如果它的名字中没有这些单词之一,那么该对象属于其他人。你必须打电话[object retain]如果您希望在函数结束后保留该对象。在您自己创建的函数中,您也将很好地遵循这一约定。(吹毛求疵者:是的,不幸的是,有一些API调用是这些规则的例外,但它们很少)。
随时随地看视频慕课网APP
我要回答