我有单身人士。我的单身人士有UIViewController属性。当我推动一些视图控制器时,我将推动视图控制器设置为单例属性。
例如,我从A视图控制器推送B视图控制器
并且在B视图控制器初始化代码中我设置了singleton的属性:
在init代码中:
Singleton *singleton = [Singleton sharedInstance];
singleton.viewController = self;
这段代码意味着即使我弹回到前一个控制器A,实例B也不会像我想的那样被销毁,而且似乎我会有内存泄漏。
因此,每当我按下B控制器时,我都会增加内存使用量。
如何解决它。我试过使用弱而不是强的单身属性,但我不确定这是解决方案。
我的预期方式 - 像级联摧毁。但也许我感到困惑,这段代码不会导致内存泄漏。你怎么想。
答案 0 :(得分:2)
不是真的。您没有泄漏实例,因为您仍然可以参考它。并且内存使用量不会增加,因为下次你按B时它会将自己设置为单例并替换之前的实例(然后将被解除分配)。
一般来说,如果你想存储引用,你应该使它“弱”。和/或让视图控制器在从父项中删除时自行删除。