0

我有一个包含许多较小对象的对象,其中包含许多较小的对象。为了清理内存,我希望能够一次释放所有对象。

我正在使用ARC,所以我认为如果我这样做initialObject = nil就可以解决问题……但我认为它不起作用(内存仍在使用中)。

对象包含objective-c 和c++ (openCV) 代码;

我怎样才能实现我需要做的事情?

4

3 回答 3

0

为初始对象中包含的较小对象创建弱引用。使用 __weak 标识符。(对于 ARC)当您将 initialobject 设置为 nil 时,如果没有对较小对象的强引用,它们就会被释放。

于 2013-07-29T08:05:38.237 回答
0

只需将引用这些对象的变量设置为零。然后编译器将在那个时刻释放对象,如果不存在对它们的其他强引用,它们将被销毁。

将持有较小对象的对象设置为 nil,将该对象设置为 nil。

这意味着你需要做的是首先将子对象设置为nil,根对象不包含对象,然后将根对象设置为nil,根对象和子对象将被销毁。

于 2013-07-29T08:11:58.337 回答
0

创建一个数据结构,它是 NSobject 类型的子类,并在其中放入一个 dealloc 方法并释放该 dealloc 中的所有较小对象。当你的工作完成后释放你的主要对象。这是简单的老板..

于 2013-07-29T07:20:50.660 回答