0

我已经搜索了几个小时,但找不到解决问题的方法:我正在使用这个 php 脚本向我的应用程序发送推送通知:http: //pastebin.com/9axHdM0t。我用它发送附加信息:'patient' => 'test'。现在我想提取此信息并为其设置标签。我在 AppDelegate 中使用此功能执行此操作:

func application(application: UIApplication, didReceiveRemoteNotification userInfo: [NSObject : AnyObject])
{
    //extracting the information
    let info = userInfo["aps"] as! Dictionary<String, AnyObject>
    let pat = info["patient"] as! String
    //print(pat) works fine
    //sending the variable to the viewcontroller and triggering the function wich sets the text of the Label
    vc.patientx = pat
    vc.settext(vc.patientx)     
} 

在我的 Viewcontroller 中,我正在这样做:

@IBOutlet var patientxy: UITextField!
var patientx:String!
func settext(name: String)
{
    if patientx != nil {
        //print(patientx) works fine.
    patientxy.text = patientx
    AudioServicesPlaySystemSound(1304)
    AudioServicesPlayAlertSound(SystemSoundID(kSystemSoundID_Vibrate))
    }

}

打印变量可以正常工作,然后将标签设置为 var 会使代码崩溃:

致命错误:在展开可选值时意外发现 nil。

问题是什么?这是我的 AppDelegate:http ://pastebin.com/mXC0wL5E 和我的 Viewcontroller:http ://pastebin.com/45dTVLZ3 。

我尝试了许多建议的解决方案(许多来自 Stack Overflow),例如检查标签是否仍然连接或以不同的方式更新标签,但我找不到有效的解决方案。

4

0 回答 0