Swift 从代表处快速写入屏幕

Swift 从代表处快速写入屏幕,swift,swift2,Swift,Swift2,我和斯威夫特只合作了一个月,如果我错过了一些大家都应该知道的东西,请原谅我。我的任务是创建一个应用程序,该应用程序将接收一个APN(苹果推送通知),其中包含需要批准的销售订单的文档编号。该应用程序将显示有关销售订单的详细信息,并向用户提供接受或拒绝选项。我构建了一个概念证明,它与APN完美结合。当我添加APN功能时,我创建了ViewController的一个实例,并使用它来获取订单详细信息。我将订单详细信息存储在一个全局变量中,该变量可用于两个类(委托和ViewController)。在我尝试将

我和斯威夫特只合作了一个月,如果我错过了一些大家都应该知道的东西,请原谅我。我的任务是创建一个应用程序,该应用程序将接收一个
APN
(苹果推送通知),其中包含需要批准的销售订单的文档编号。该应用程序将显示有关销售订单的详细信息,并向用户提供接受或拒绝选项。我构建了一个概念证明,它与
APN
完美结合。当我添加
APN
功能时,我创建了
ViewController
的一个实例,并使用它来获取订单详细信息。我将订单详细信息存储在一个全局变量中,该变量可用于两个类(委托和
ViewController
)。在我尝试将订单详细信息写入屏幕之前,一切都很顺利。它失败于:

“致命错误:在展开可选文件时意外发现零。” “价值”

AppDelegate.swift
I设置

 var vc = ViewController.self
本币

application(_ application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject], fetchCompletionHandler completionHandler:(UIBackgroundFetchResult) -> Void)
我处理
APN
并调用

vc.init().LogonServiceLayer()
一切都很好,直到它尝试写入屏幕。我尝试写入
cardnamelab.text
。我将
cardnamelab
定义为

 @IBOutlet weak var CardNameLabel: UILabel!
我确信我必须为我的类创建某种初始化函数/构造函数。我试过这样的方法:

required init(coder aDecoder: NSCoder!) {
    super.init(coder: aDecoder)!
    // Your intializations
    CardNameLabel.text = String ()
}

required init() {
    super.init(nibName: nil, bundle: nil)
    //Do whatever you want here
    CardNameLabel.text = String ()
}
这将编译,但现在它在构造函数中失败,而不是在我尝试更新屏幕上的标签时。如果我遗漏了一些非常明显的东西,请原谅,但到目前为止,我还没有找到一种方法来使用在委托模块中创建的类的实例更新屏幕上的标签

我错过了什么

谢谢,,
Duncan

在哪一行代码中,您有问题中描述的错误?如果我在代理中创建ViewController.self的实例,我必须采取什么操作才能写入屏幕上的字段。我有一个名为CardNameLabel的标签。我想更新CardNameLabel.text。在viewController中,这可以正常工作。在委托中,我创建var vc=viewController.self。稍后我调用vc.logon,它调用一个函数来更新cardnamelab.text。此调用导致应用程序崩溃,因为vc对象无法触摸屏幕控件。如何使用viewController类的此实例更新屏幕控件?