【问题标题】:what's the correct way destroy different kinds of objects in objective c?在目标c中销毁不同种类的物体的正确方法是什么?
【发布时间】:2013-01-24 18:24:35
【问题描述】:

我有这个对象包含对其他对象的引用:

1) 浏览量
2) 视图控制器
3)词典
4)数组
5) 自定义对象。

摧毁它的最好方法是什么?我是否需要创建一个销毁方法来处理其不同属性的销毁?
在这些类型中的每一种中是否有特殊的事情要做,或者我只是将它们全部设置为零?
注意:我正在使用 ARC。

谢谢,
宁录

【问题讨论】:

  • destroy 表示使用后从内存中释放?
  • 你不会“破坏”任何 Objective-C 对象。相反,您(以某种方式)将它们的引用计数减少到零并让它们被删除。
  • *(char*)0x42 = 'b';你毁了它!

标签: objective-c object destroy


【解决方案1】:

这取决于你是否使用Automatic Reference Counting (ARC)

如果没有 ARC,您必须重写 dealloc 方法并释放您拥有的对象。

使用 ARC,您只需将主对象设置为 nil。 ARC 将负责释放该对象以及它拥有的所有其他对象。

【讨论】:

    【解决方案2】:

    当你使用 ARC 时,你不需要太在意释放对象,除非有一些 Retain Cycle。

    您可以将 nil 发送到您的对象作为 yourObject=nil;,这将使其为零并稍后发布。

    【讨论】:

    • @NimrodYizhar:那你想要什么?即使您没有将其设置为nil,在事件循环结束时,所有内容都会进入自动释放池并被释放/销毁。
    猜你喜欢
    • 1970-01-01
    • 2020-09-14
    • 2012-05-16
    • 2013-09-02
    • 1970-01-01
    • 1970-01-01
    • 2014-03-28
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多