2015-10-22 6 views
0

Я использую AFHTTPRequestOperation в стрижа, как это:AFHTTPRequestOperation setCacheResponseBlock Невозможно преобразовать значение типа

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 и т.д.)

операция .setCacheResponseBlock! {(подключение: NSURLConnection, cachedResponse: NSCachedURLResponse) -> NSCachedURLResponse в печати ("возвращения: 200") responseFromCache = ложь возвращение cachedResponse }

Все было в порядке до обновления XCode до новой версии XCode7.1.

Вот моя проблема, я получаю эту ошибку, когда я строю мое приложение после обновления:

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

Как это исправить?

ответ

0

После проверки сообщения об ошибке я понимаю что-то не так с моими параметрами. Я проверить декларацию методы, в XCode и я понимаю декларацию методы, просто обновление:

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

Я обновил свой метод так:

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

и другой счастливого конца с построением удалось сообщениями в Xcode. Надеюсь, это поможет кому-то.

Смежные вопросы