2016-09-14 54 views
1

后,我更新的Xcode 8.0版(8A218a)SWIFT 3,我得到这个错误斯威夫特错误无法将类型的价值 '(AFHTTPRequestOperation?AnyObject?) - >()

无法将类型的价值'(AFHTTPRequestOperation ?,AnyObject?) - >()'to expected argument type'((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

回调方法签名已经改变。在斯威夫特2是

(AFHTTPRequestOperation?, AnyObject?) -> Void 

在斯威夫特3这是

(AFHTTPRequestOperation?, Any?) -> Void 

您应该更改如下

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

行至

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

后,我改变我得到这个消息:无法调用非函数类型的值'Any ?!' – stevengbu

+0

而这里面如果:类型'Any?'的值?没有成员'object' – stevengbu

+1

你可以尝试将'responseObject'强制转换为'AnyObject'。 'AnyObject'和'Any'有很大不同,所以你将不得不重写你的应用程序的一部分来正确处理'Any'而不是'AnyObject' – donnywals

相关问题