首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >关于"dealloc“的文件

关于"dealloc“的文件
EN

Stack Overflow用户
提问于 2012-01-30 01:27:17
回答 1查看 300关注 0票数 0

在dealloc的实现中,不应该调用超类的实现。您可以重写此方法以释放对象实例变量以外的其他资源,例如:

  • (void)dealloc {myBigBlockOfMemory;}

上面说我们不应该调用超类的实现。但下面说,我们应该“通过向超级用户传递信息,整合dealloc的超类版本。”因此,这两段之间似乎有一些冲突。一定是因为我错过了什么。希望有人能解释一下..。

如果使用手动引用计数,子类必须实现其自己版本的dealloc,以允许释放对象消耗的任何额外内存--例如为已分配对象拥有的数据或对象实例变量动态分配存储。在执行类特定的去分配之后,子类方法应该通过一条消息合并dealloc的超类版本:

  • (void)dealloc {同伴释放;空闲(MyBigBlockOfMemory);超级dealloc;}

类/Reference.html

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-01-30 01:31:39

您的第一个报价用于自动引用计数( ARC )启用时,而第二个报价用于ARC是而非启用时。ARC是SDK5.0中提供的一个新特性,它消除了程序员需要完成的大部分手动内存管理。

请参见过渡到ARC发行说明,特别是这些语句:

如果需要管理释放实例变量以外的资源,则可以实现dealloc方法。您不必(实际上不能)释放实例变量. ARC中的自定义dealloc方法不需要调用超脱钙。超级链接是由编译器自动执行的。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9058428

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档