2016-09-21 17 views
16

Tôi vừa nâng cấp lên Xcode 8 và đã nhận được lỗi gây ra lỗi xây dựng. Tôi rất mới để nhanh chóng, xin vui lòng giúp đỡ.xcode 8 giá trị của loại 'Lỗi' không có thành viên 'userinfo'

enter image description here

Tôi nên thay đổi điều này thành? Cảm ơn

CẬP NHẬT

Ngoài lỗi này tôi cũng đã nhận như sau:

PFUser.logInWithUsername(inBackground: usernameTextField.text!, password: passwordTextField.text!, block: { (user, error) -> Void in 

        //self.activityIndicator.stopAnimating() 
        UIApplication.shared.endIgnoringInteractionEvents() 

        if user != nil { 

         self.launchDrawerMenu() 

        } else { 

         let convertedError = error! as NSError 

         //if let errorString = convertedError["error"] as? String { 
          errorMessage = errorString 
         } 
         self.displayAlert("Login failed", message: errorMessage) 

        } 
       }) 

cho dòng // Tôi đã "loại NSError không có thành viên subscript" lỗi. Tôi đã thử kết nối nó với NSError nhưng nó không hoạt động lần này. Tôi nên làm gì? cảm ơn rất nhiều

+0

các loại đối tượng của 'error' là gì? Giống như nó là một đối tượng 'NSError' hoặc một số đối tượng tùy chỉnh? –

+0

@Asad Ali nó là một NSError –

+1

Đó là lỗi không NSError –

Trả lời

22

Trước hết, hãy đăng mã (văn bản) thay vì ảnh chụp màn hình.

Trong Swift 3 NSError đã được thay thế trong nhiều API với giao thức Swift Error chung chung hơn mà không có từ điển userInfo. Cầu cast đối tượng để NSError

if let errorString = (error! as NSError).userInfo.... 
+0

cảm ơn đề xuất. Tôi cũng gặp lỗi tương tự khác, vui lòng xem cập nhật và trợ giúp. Thực sự đánh giá cao nó –

+0

Bạn quên 'userInfo', đó là tài sản có thể được subscripted. – vadian

+0

thats rất câm của tôi. Cảm ơn sự giúp đỡ của bạn! –

0

Tôi thấy điều này làm việc

let errorUserInfo : NSDictionary? = ((error as Any) as! NSError).userInfo["error"] as? NSDictionary 
Các vấn đề liên quan