当我第一次创建我的应用程序时,我将所有运行时自定义对象和属性存储在我的应用程序委托中,以便我可以跨视图共享它们。我从不喜欢这个并且一直想改变它,所以我今天做了一些阅读并将我所有的运行时属性和对象移动到一个单例对象,如下所示:
@synthesize gblStr;
+(AppDataSingleton *)singleObj
{
static AppDataSingleton * single=nil;
@synchronized(self)
{
if(!single)
{
single = [[AppDataSingleton alloc] init];
}
}
return single;
}
可以说 gblStr 可以从任何具有单例的视图控制器访问。
这很好用,我现在将所有对象都存储在这里而不是我的应用程序委托中。
在每个视图控制器中,我添加了属性:
AppDataSingleton *globalSingleton;
在 viewDidLoad 中,我将其实例化:
globalSingleton = [AppDataSingleton singleObj];
我的问题是: 是否会出现用户返回应用程序并且单例已被销毁的情况?我需要检查这个吗?
或者,如果它被破坏了,它会从头开始重新启动应用程序吗?