我有一个工作正常的选项卡栏应用程序,但如果应用程序在没有在后台运行的情况下打开,那么选项卡的打开速度会比平时慢一些,因为它们正在加载 plist。
应用程序启动时是否可以将所有数据加载到视图中?
我有一个工作正常的选项卡栏应用程序,但如果应用程序在没有在后台运行的情况下打开,那么选项卡的打开速度会比平时慢一些,因为它们正在加载 plist。
应用程序启动时是否可以将所有数据加载到视图中?
我建议使用所有视图控制器都可以查询的服务类。定义此类帮助器类的常用方法是使用单例设计模式。单例模式只允许实例化单例类的一个实例。使用此方法,您知道将使用此服务的所有其他实例都将通过这个实例。
这是我通常使用的片段,它可能不是最佳的,所以我邀请其他用户提出更改建议:
//.h:
+ (MySingletonServiceInstance *)sharedInstance;
//.m:
static MySingletonServiceInstance *sharedInstance = nil;
+ (MySingletonServiceInstance *)sharedInstance{
@synchronized(self){
if(sharedInstance == nil)
sharedInstance = [[self alloc] init];
}
return sharedInstance;
}
- (id)init {
if ((self = [super init])) {
//Set up
}
return self;
}
现在在任何其他类(例如需要一些数据的视图控制器)中,您可以执行以下操作:
[[MySingletonServiceInstance sharedInstance] doSomething];
或者
NSDictionary *myData = [MySingletonServiceInstance sharedInstance].data;
它会调用同一个对象。我经常使用单例对象来加载数据等,无论它是 Web 服务的接口还是本地 CoreData 的接口。这是一个非常有用的设计模式,我通过学习它学到了很多东西。