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