2017-05-03 6 views
-1

このコードを実行しようとするとクラッシュし、エラーが発生します。私はそれを正しく行う方法を理解することはできません。ここで'NSError'(0x264bd90)の値を 'NSString'にキャストできません

は私のFUNCです:

@IBAction func MobilePay(_ sender: Any) { 
     let payment = MobilePayPayment(orderId: "123456", productPrice: 10.0) 
     //No need to start a payment if one or more parameters are missing 
     if (payment != nil) && ((payment?.orderId.characters.count)! > 0) && ((payment?.productPrice)! >= 0) { 
      MobilePayManager.sharedInstance().beginMobilePayment(with: payment!, error: { (Error) in 
       print(Error) 
       self.alert(message: Error as! String) 
      }) 
     } 
    } 

と私のエラーログ:

エラードメイン= com.danskebank.mobilepayコード= 1001 "MobilePayアプリを開くことができません" のUserInfo = {NSLocalizedFailureReason = MobilePay NSLocalizedDescription = MobilePayアプリを開くことができません} タイプ 'NSError'(0x264bd90)の値を 'NSString'(0x264d6b8)にキャストできませんでした。 (lldb)

それは印刷作品だとエラーが印刷されますが、私は最後の行

は「NSStringの」 にタイプ「NSError」(0x264bd90)の値をキャストできませんでした誰を得るのですか(0x264d6b8)。 (lldb)

どのように修正すればよいですか?

+4

同じ名前の*プロトコル*があるので、ローカル変数 'Error'を呼び出すことは難読化されています。それとは別に、あなたは文字列にエラーを投げることができると思いますか? 'error.localizedDescription'はおそらくあなたが望むものです。 –

答えて

1

このように、ErrorオブジェクトのプロパティlocalizedDescriptionをお試しください:

self.alert(message: Error.localizedDescription) 

エラードメイン= com.danskebank.mobilepayコード= 1001 " MobilePayアプリを開くことができません" のUserInfo = {NSLocalizedFailureReason = MobilePayアプリがインストールされ 、NSLocalizedRecoverySuggestion = MobilePayアプリ をインストールして、もう一度試してくださいではありません。、NSLocalizedDescription「NSError」型の値をキャストすることができませんでした} MobilePay アプリを開くことができない=(0 x264bd90)を 'NSString' (0x264d6b8)に設定します。 (lldb)

+0

ええ、あなたは正しかった!ありがとう! –

関連する問題