2016-09-14 3 views
1

После того как я обновить Xcode версии 8.0 (8A218a) скоро 3, я получил эту ошибкуSwift ошибки Невозможно преобразовать значение типа '(AFHTTPRequestOperation ?, AnyObject?) ->()

Невозможно преобразовать значение типа' (AFHTTPRequestOperation ?, AnyObject?) ->() 'до ожидаемого типа аргумента' ((AFHTTPRequestOperation ?, Any?) -> Void)! '

Это приведенный ниже код показывает ошибку выше.

jsonmanager.post("http://myapi.com", 
         parameters: nil, 
         success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) in 
         if(responseObject.object(forKey: "meta")?.object(forKey: "status")?.intValue == 200){.... 

Я что-то не так?

Он хорошо работает в предыдущей версии 7.3.1 быстрой 2.

ответ

5

Метод обратного вызова подписи изменился. В Swift 2 это

(AFHTTPRequestOperation?, AnyObject?) -> Void 

В Swift 3 это

(AFHTTPRequestOperation?, Any?) -> Void 

Вы должны изменить строку ниже

success: { (operation: AFHTTPRequestOperation!,responseObject: AnyObject!) 

Для

success: { (operation: AFHTTPRequestOperation?, responseObject: Any?) 
+0

После того, как я изменил я получил это сообщение : Невозможно вызвать значение нефункционного типа «Any ?!» – stevengbu

+0

И это внутри if: значение типа «Any?» не имеет объекта-члена ' – stevengbu

+1

Вы можете попробовать применить 'responseObject' к' AnyObject'. 'AnyObject' и' Any' довольно разные, поэтому вам придется переписать этот параметр вашего приложения, чтобы правильно обрабатывать 'Any', а не' AnyObject' – donnywals