【问题标题】:AFHTTPRequestOperation setCacheResponseBlock Cannot convert value of typeAFHTTPRequestOperation setCacheResponseBlock 无法转换类型的值
【发布时间】:2015-10-22 14:28:26
【问题描述】:

我在 swift 中使用AFHTTPRequestOperation,如下所示:

let operation : AFHTTPRequestOperation? = manager.GET(requestURL, parameters: nil,
            success: { (operation:AFHTTPRequestOperation!, responseObject:AnyObject!) -> Void in

...
...
...
                success(downloadedItems: responseObject)
            }, failure: { (operation: AFHTTPRequestOperation!, error: NSError!) in
                failure(responseFromCache: responseFromCache, error: error);
        })

我将 setCacheResponseBlock 用于特定应用目的(ETag 等)

operation!.setCacheResponseBlock { (connection: NSURLConnection, cachedResponse: NSCachedURLResponse) -> NSCachedURLResponse in 打印(“返回:200”) responseFromCache = false 返回缓存响应 }

在将 XCode 更新到新版本 XCode7.1 之前一切正常。

这是我的问题,更新后构建应用程序时出现此错误:

Cannot convert value of type '(NSURLConnection, NSCachedURLResponse) -> NSCachedURLResponse' to expected argument type '((NSURLConnection!, NSCachedURLResponse!) -> NSCachedURLResponse!)!'

如何解决这个问题?

【问题讨论】:

    标签: ios swift swift2 afhttprequestoperation xcode7.1


    【解决方案1】:

    检查错误消息后,我了解到我的参数有问题。我在 XCode 中检查了方法的声明,我理解了刚刚更新的方法声明:

    func setCacheResponseBlock(block: ((NSURLConnection!, NSCachedURLResponse!) -> NSCachedURLResponse!)!)
    

    我这样更新了我的方法:

      operation!.setCacheResponseBlock { (connection: NSURLConnection!, cachedResponse: NSCachedURLResponse!) -> NSCachedURLResponse! in
                print("Returns:200")
                responseFromCache = false
                return cachedResponse
            }
    

    另一个在 Xcode 中构建成功消息的快乐结局。希望这会对某人有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-11-02
      • 2016-03-05
      • 2023-03-20
      • 2015-11-16
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多