2016-09-21 2 views
16

Я только что обновился до Xcode 8 и уже получаю ошибки, которые вызывают сбои сборки. Я очень новый, чтобы быстро, пожалуйста, помогите.xcode 8 значение типа 'Error' не имеет пользователя 'userinfo'

enter image description here

Что я должен изменить это? Благодаря

UPDATE

Помимо этой ошибки я также получил следующее:

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) 

        } 
       }) 

для // линии я получил «тип NSError не имеет членов подстрочные» ошибка. Я попытался подключить его к NSError, но на этот раз он не работает. Что мне делать? Большое спасибо

+0

Что тип объекта из 'error'? Например, это объект «NSError» или какой-то пользовательский объект? –

+0

@Asad Ali это NSError –

+1

Это ошибка не NSError –

ответ

22

Прежде всего, разместите код (текст), а не снимок экрана.

В Swift 3 NSError был заменен во многих API более общим протоколом Swift Error, который не имеет словаря userInfo. Мост приведения объекта к NSError

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

спасибо за предложение. Я также получил еще одну подобную ошибку, см. Обновление и помощь. Очень ценю это –

+0

Вы забыли 'userInfo', это свойство, которое можно индексировать. – vadian

+0

это очень глупо. Большое спасибо за вашу помощь! –

0

Я нашел это работало

let errorUserInfo : NSDictionary? = ((error as Any) as! NSError).userInfo["error"] as? NSDictionary 
Смежные вопросы