Swift错误无法转换类型'(AFHTTPRequestOperation?,AnyObject?)->()的值
Posted
技术标签:
【中文标题】Swift错误无法转换类型\'(AFHTTPRequestOperation?,AnyObject?)->()的值【英文标题】:Swift error Cannot convert value of type '(AFHTTPRequestOperation?, AnyObject?) -> ()Swift错误无法转换类型'(AFHTTPRequestOperation?,AnyObject?)->()的值 【发布时间】:2016-09-14 09:47:58 【问题描述】:在我更新 xcode 版本 8.0 (8A218a) swift 3 后,出现此错误
无法将类型 '(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 swift 2 中运行良好。
【问题讨论】:
【参考方案1】:回调方法签名已更改。在 Swift 2 中是
(AFHTTPRequestOperation?, AnyObject?) -> Void
在 Swift 3 中是
(AFHTTPRequestOperation?, Any?) -> Void
你应该改变下面的行
success: (operation: AFHTTPRequestOperation!,responseObject: AnyObject!)
到
success: (operation: AFHTTPRequestOperation?, responseObject: Any?)
【讨论】:
更改后我收到此消息:无法调用非函数类型的值'Any?!' 这里面如果:“任何?”类型的值没有成员“对象” 您可以尝试将responseObject
转换为AnyObject
。 AnyObject
和 Any
完全不同,因此您将不得不重写应用程序的该部分以正确处理 Any
而不是 AnyObject
以上是关于Swift错误无法转换类型'(AFHTTPRequestOperation?,AnyObject?)->()的值的主要内容,如果未能解决你的问题,请参考以下文章
Swift 3 RKObjectRequestOperation 返回错误无法转换类型为 RKObjectRequestOperation
firebase swift 3 转换:无法将类型“(_)->()”的值转换为预期的参数类型“((错误)-> Void)?
无法转换任何类型?要键入 AnyObject?从 swift 3 转换为 swift 4 时
“无法转换类型的值” - Firebase Swift 中的错误
Xcode 8.1 Swift 3 错误:无法将“String”类型的值转换为预期的参数类型“UnsafeMutableRawPointer”