【问题标题】: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 中运行良好。

【问题讨论】:

    标签: ios swift swift3 ios10 afhttprequestoperation


    【解决方案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
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-07-13
    • 1970-01-01
    • 2016-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多