【问题标题】:`applicationDidFinishLaunching` not called in iOS projectiOS项目中未调用`applicationDidFinishLaunching`
【发布时间】:2018-04-29 05:31:09
【问题描述】:

applicationDidFinishLaunching 在我的应用程序的运行中从未被调用(在真实设备和模拟器上测试),尽管applicationDidBecomeActive 被调用。这个问题我只能找到macOS的解决方案(hereherehere

在我的info.plist 文件中,我正确设置了主情节提要文件的基本名称。我有一个 Storyboard 入口点连接到我的初始视图控制器。应用程序启动,我看到了我应该看到的一切,但从未调用过 applicationDidFinishLaunching,我使用该方法来处理启动配置和构造。

根据 macOS 帖子,我尝试将对象(黄色立方体)拖入初始视图控制器的 IB 层次结构中,将其类设置为我的应用程序委托类,并将其设置为初始视图控制器的委托。但是applicationDidFinishLaunching 仍然没有被调用。

方法签名正确(我知道这是 Swift 项目的常见问题)

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
    // Override point for customization after application launch.
    return YES;
}


- (void)applicationDidFinishLaunching:(UIApplication *)application{
   //code
}

【问题讨论】:

  • 使用目标 c,但是我在其他 SO 帖子中看到这是一个常见问题!
  • 是在 iOS 模拟器上还是在设备上?您是否尝试过卸载并运行
  • 这两个都不行-所以我应该尝试在真机和模拟器上卸载应用程序,然后再尝试运行?
  • 请为您的应用委托类的相关部分添加您的代码。这可能就像您的方法签名中的错误一样简单。
  • 该方法的documentation 声明“在应用程序完成启动时通知代理。不要使用。而是使用didFinishLaunchingWithOptions”。既然你已经实现了didFinishLaunchingWithOptionsdidFinishLaunching 就不会被调用。

标签: ios objective-c xcode storyboard appdelegate


【解决方案1】:

applicationDidFinishLaunching: 的文档中说:

虽然没有正式弃用,但请不要在您的应用中使用此方法。 使用应用程序:willFinishLaunchingWithOptions: 和 application:didFinishLaunchingWithOptions: 方法代替。

如果您使用application:didFinishLaunchingWithOptions:,则不会调用applicationDidFinishLaunching:

【讨论】:

    猜你喜欢
    • 2011-12-16
    • 1970-01-01
    • 2023-03-25
    • 2011-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多