【问题标题】:Automatically instantiate singleton at launch在启动时自动实例化单例
【发布时间】:2010-12-06 00:13:06
【问题描述】:

我有一个单例 Session,我想在应用程序启动时对其进行实例化。我该怎么做?

我正在使用这种创建单例的方法:http://cocoawithlove.com/2008/11/singletons-appdelegates-and-top-level.html

【问题讨论】:

  • 你的 Session 单例听起来(根据它的名字)听起来不是单例。相反,“会话”对象通常是每个客户端的,而不是全局的。
  • 我也是这么想的。但是根据该页面,任何不属于任何其他对象、不是常量且单独存在的对象都应该是单例。我的 Session 单例符合所有三个条件。

标签: iphone objective-c cocoa-touch ios singleton


【解决方案1】:

didFinishLaunchingWithOptions 方法的第一行

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
 [YourSingletonClass class]; // ADD THIS LINE

它会在你的单例类中触发 initialize 方法初始化

+ (void) initialize {
     _innerInstance = [[YourSingletonClass alloc] init];
}

【讨论】:

    【解决方案2】:

    如果您在 applicationDidFinishLaunching: 方法中访问单例,它们应该会被设置。

    【讨论】:

      猜你喜欢
      • 2012-06-19
      • 2023-03-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-30
      • 2011-05-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多