2017-05-03 2 views
-1

이 코드를 실행하려고하면 오류가 발생하며 오류가 발생합니다. 나는 그것을 올바르게하는 방법을 이해할 수 없다.'NSString'에 'NSError'(0x264bd90) 유형의 값을 캐스팅 할 수 없습니다.

@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 응용 프로그램을 열 수 없음"사용자 정보 = {NSLocalizedFailureReason = MobilePay 여기

내 FUNC입니다 앱이 설치되지 않았습니다. NSLocalizedRecoverySuggestion = MobilePay 앱을 설치하고 다시 시도하십시오., NSLocalizedDescription = MobilePay 앱을 열 수 없습니다.} 'NSError'(0x264bd90) 유형의 값을 'NSString'(0x264d6b8)으로 캐스팅하지 못했습니다. (lldb)

그것은 인쇄 작업을 보인다 오류가 인쇄되어 있습니다,하지만 난

이 '는 NSString' 에 유형의 가치 'NSError'(0x264bd90)를 캐스팅 할 수 없습니다 마지막 줄을 어떻게해야합니까 사람 (0x264d6b8). (lldb)

어떻게 수정합니까?

+4

로컬 변수'Error'를 호출하는 것은 동일한 이름의 * 프로토콜 *이 있기 때문에 난독 화됩니다. 그 외에도 문자열에 오류를 넣을 수 있다고 생각하는 이유는 무엇입니까? 'error.localizedDescription' 아마 당신이 원하는 것입니다. –

답변

1

과 같이 localizedDescription 재산 Error 객체의 시도 : 사용자 정보 = {NSLocalizedFailureReason = MobilePay 1001 "를 MobilePay 응용 프로그램을 열 수 없음"

self.alert(message: Error.localizedDescription) 

오류 도메인 = com.danskebank.mobilepay 코드 = 앱이 설치 , NSLocalizedRecoverySuggestion = MobilePay 응용 프로그램 를 설치하고 다시 시도하십시오 없습니다., NSLocalizedDescription 'NSError'형식의 값을 캐스팅 할 수 없습니다}는 MobilePay 응용 프로그램을 열 수 = 수 (0 x264bd90)을 'NSString' (0x264d6b8)으로 변경하십시오. (lldb)

+0

예, 맞았습니다! 감사! –

관련 문제