【问题标题】:Initialize a singleton class when app is lunching应用程序午餐时初始化单例类
【发布时间】:2014-05-19 10:49:12
【问题描述】:
我有单例数据库对象,我想在应用程序启动时从文件或服务器上传。
我有一个启动屏幕 - 在这个屏幕之后我想决定是去主视图控制器(用户已经登录)还是登录视图控制器(用户第一次登录)。
我正在考虑使用NSOperation 初始化单例并使用NSOperationQueue。
我想知道初始化这个单例的最佳位置在哪里。
application:willFinishLaunchingWithOptions: 或 application:didFinishLaunchingWithOptions: 或其他地方?
【问题讨论】:
标签:
ios
objective-c
singleton
nsoperation
uiapplicationdelegate
【解决方案1】:
在我的代码中,我通常会执行以下操作。
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
// othere code here
// Initialize ApplicationManager
[ApplicationManager takeOff:@"TOKEN HERE"];
return YES;
}
旧的 TestFlight SDK 或 CocoaLumberjack 使用这种方法。如果您的数据库设置可能会冻结 UI,您可以考虑在后台移动代码。