gpt4 book ai didi

ios - 访问单例方法(ARC)时的iOS内存管理

转载 作者:行者123 更新时间:2023-12-01 18:54:51 25 4
gpt4 key购买 nike

假设我们有一个名为SingletonClass的Singleton类。我们可以通过以下方式访问它

[SingletonClass SharedInstance]

现在,当我们在下面的任何其他类中执行以下操作来访问其方法时,请说ClassOther
__weak singletonObj = [SingletonClass SharedInstance];
[singletonObj methodA];

因此,当ClassOther的对象释放时,singletonObj会弱链接并正确释放。

但是如果我尝试
[SingletonClass SharedInstance] methodA];

当ClassOther发布时,它会发布与SingletonClass对应的所有内容吗?也就是说,当我们访问SingletonClass及其不弱链接时,它是否进入循环并且没有释放ClassOther?

最佳答案

假设SingletonClass的SharedInstance方法实际上是单例模式的正确实现,则一旦首次通过SharedInstance初始化SingletonClass时,在应用程序处于 Activity 状态的其余时间中,该状态应该仍然存在。

Singleton模式的重点是共享该对象的单个实例。

你做这样的事情是没有意义的

__weak singletonObj = [SingletonClass SharedInstance];
[singletonObj methodA];

因为在调用SharedInstance时始终可以访问同一对象。不管ClassOther做什么和不应该做什么,从第一次调用SharedInstance到从内存中清除应用程序开始,SingletonClass实例都应保留在内存中。

关于ios - 访问单例方法(ARC)时的iOS内存管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28198777/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com