我有一个对象,它包含许多较小的对象,这些对象包含许多较小的对象。 为了清理内存,我希望能够一次释放所有对象。
我正在使用 ARC ,所以我想如果我只是做initialObject = nil
就可以做到这一点......但是我觉得它没有用(内存仍在使用中)使用)。
对象包含objective-c和c ++(openCV)代码;
我如何实现我的目标?
答案 0 :(得分:0)
创建一个数据结构,它是NSobject类型的子类,并在其中放入一个dealloc方法并释放该dealloc中的所有较小的对象。当你的工作完成时,请释放你的主对象。这是简单的老板..
答案 1 :(得分:0)
为初始对象中包含的较小对象创建弱引用。 使用__weak标识符。 (对于ARC) 将initialobject设置为nil时,如果没有对较小对象的强引用,则会释放它们。
答案 2 :(得分:0)
只需将引用这些对象的变量设置为nil即可。然后,编译器将在那一刻释放对象,如果没有其他强引用,它们将被销毁。
将包含较小对象的对象设置为nil,将对象设置为nil。
这意味着你需要做的是首先将子对象设置为nil,哪个根对象不保存对象,然后将根对象设置为nil,将根对象和子对象销毁。