我有一个包含许多较小对象的对象,其中包含许多较小的对象。为了清理内存,我希望能够一次释放所有对象。
我正在使用ARC,所以我认为如果我这样做initialObject = nil
就可以解决问题……但我认为它不起作用(内存仍在使用中)。
对象包含objective-c 和c++ (openCV) 代码;
我怎样才能实现我需要做的事情?
我有一个包含许多较小对象的对象,其中包含许多较小的对象。为了清理内存,我希望能够一次释放所有对象。
我正在使用ARC,所以我认为如果我这样做initialObject = nil
就可以解决问题……但我认为它不起作用(内存仍在使用中)。
对象包含objective-c 和c++ (openCV) 代码;
我怎样才能实现我需要做的事情?
为初始对象中包含的较小对象创建弱引用。使用 __weak 标识符。(对于 ARC)当您将 initialobject 设置为 nil 时,如果没有对较小对象的强引用,它们就会被释放。
只需将引用这些对象的变量设置为零。然后编译器将在那个时刻释放对象,如果不存在对它们的其他强引用,它们将被销毁。
将持有较小对象的对象设置为 nil,将该对象设置为 nil。
这意味着你需要做的是首先将子对象设置为nil,根对象不包含对象,然后将根对象设置为nil,根对象和子对象将被销毁。
创建一个数据结构,它是 NSobject 类型的子类,并在其中放入一个 dealloc 方法并释放该 dealloc 中的所有较小对象。当你的工作完成后释放你的主要对象。这是简单的老板..