【问题标题】:Swift Application Initialization not WorkingSwift 应用程序初始化不起作用
【发布时间】:2015-02-09 15:14:39
【问题描述】:

我正在制作一个 Cocoa 应用程序,以前,我所有的代码都在 AppDelegate.swift 中。我想写一个扩展,但它不允许我在那里做,所以我创建了另一个类,并将我的代码粘贴到其中。在将我的所有对象重新连接到它们各自的 Xib 之后(对不起,如果我的技术术语有点偏离),除了初始化之外,代码是完全相同的。我用了 func applicationDidFinishLaunching(aNotification: NSNotification) 它以前在 AppDelegate.Swift 中工作,但现在不再执行。这是有原因的吗?

【问题讨论】:

    标签: macos cocoa swift initialization xib


    【解决方案1】:

    结果我只需要从我的新类中添加一个委托到 AppDelegate.swift。现在至少启动工作,但现在不幸的是我在那里写的一切都崩溃了。哦,好吧。

    【讨论】:

      【解决方案2】:

      我不太明白你的问题是什么,无论如何你可以按照以下步骤操作:

      1. 创建你的类(假设是UIViewController
      2. 将您的班级与main storyboard 中的ViewController 联系起来(确保您的应用在项目设置中使用该故事板)
      3. 要开始使用您的代码,请使用 viewDidLoadviewDidAppear 等方法,这些方法会自动触发,例如您之前使用的 didFinishLaunchingWithOptions

      【讨论】:

      • 我认为你基本上是对的;而不是使用 didFinishLaunchingWithOptions,我现在使用的是 awakeFromNib(),我理解它或多或少是一个等效的语句。
      • @Uzebeckatrente 无论如何都要小心,因为这些方法中的任何一个都是在特定的不同时刻触发的,这意味着没有在适当的时间触发一些代码可能会导致非常糟糕的行为和崩溃。我的建议是了解所有这些工作原理并决定哪一个适合您的情况,实际上awakeFromNib() 在我看来可能不是最佳选择。
      猜你喜欢
      • 2016-05-30
      • 2020-05-11
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多