0

我正在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 print("Returns:200") responseFromCache = false return cachedResponse }

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

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

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

如何解决这个问题?

4

1 回答 1

0

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

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

我像这样更新了我的方法:

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

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

于 2015-10-22T14:28:26.667 回答