gpt4 book ai didi

iOS 单例对象存储

转载 作者:行者123 更新时间:2023-12-01 19:20:11 28 4
gpt4 key购买 nike

当我第一次创建我的应用程序时,我将所有运行时自定义对象和属性存储在我的应用程序委托(delegate)中,以便我可以跨 View 共享它们。我从不喜欢这个并且一直想改变它,所以我今天做了一些阅读并将我所有的运行时属性和对象移动到一个单例对象,如下所示:

@synthesize gblStr;

+(AppDataSingleton *)singleObj
{
static AppDataSingleton * single=nil;

@synchronized(self)
{
if(!single)
{
single = [[AppDataSingleton alloc] init];
}
}
return single;
}

可以说 gblStr 可以从任何具有单例的 View Controller 访问。

这很好用,我现在将所有对象都存储在这里而不是我的应用程序委托(delegate)中。

在每个 View Controller 中,我添加了属性:
AppDataSingleton *globalSingleton; 

在 viewDidLoad 中,我将其实例化:
globalSingleton = [AppDataSingleton singleObj];

我的问题是:
是否会出现用户返回应用程序并且单例已被销毁的情况?我需要检查这个吗?

或者,如果它被破坏了,它会从头开始重新启动应用程序吗?

最佳答案

如果应用程序崩溃或停止运行,单例将被销毁。除非您将对象写入持久存储(CoreData、.plist、SQLite 等...),否则您还必须重新创建对象...

关于iOS 单例对象存储,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10744831/

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