iOS Singleton内存泄漏属性

时间:2014-04-29 09:17:53

标签: ios objective-c singleton

我有单身人士。我的单身人士有UIViewController属性。当我推动一些视图控制器时,我将推动视图控制器设置为单例属性。

例如,我从A视图控制器推送B视图控制器

并且在B视图控制器初始化代码中我设置了singleton的属性:

在init代码中:

Singleton *singleton = [Singleton sharedInstance];
singleton.viewController = self;

这段代码意味着即使我弹回到前一个控制器A,实例B也不会像我想的那样被销毁,而且似乎我会有内存泄漏。

因此,每当我按下B控制器时,我都会增加内存使用量。

如何解决它。我试过使用弱而不是强的单身属性,但我不确定这是解决方案。

我的预期方式 - 像级联摧毁。但也许我感到困惑,这段代码不会导致内存泄漏。你怎么想。

1 个答案:

答案 0 :(得分:2)

不是真的。您没有泄漏实例,因为您仍然可以参考它。并且内存使用量不会增加,因为下次你按B时它会将自己设置为单例并替换之前的实例(然后将被解除分配)。

一般来说,如果你想存储引用,你应该使它“弱”。和/或让视图控制器在从父项中删除时自行删除。