У меня есть следующая функция в карри, и я получил предупреждение XCode о том, что Синтаксис Curried будет удален в будущей версии Swift; используйте один список параметров, но предлагаемое исправление не работает (оно просто объединяет параметры в один вызов функции). Я пытаюсь преобразовать в новый формат, но я не понимаю, как это работает. Функция beginFetchWithCompletionHandler
ниже ожидает, что handleDownload
имеет подпись параметра (data : NSData?, error : NSError?)
.Невозможно перевести Swift 2.2 currying в будущий формат Swift
fetcher.beginFetchWithCompletionHandler(handleDownload)
Я хочу также передать в целое число, следующим образом:
fetcher.beginFetchWithCompletionHandler(handleDownload(0))
Следующая кэрри функция работает отлично (но дает предупреждение):
func handleDownload(iCount : Int)(data : NSData?, error : NSError?) -> Void {
print(iCount)
print(data!.length)
}
Вот что я «Пробовал, но получаю ошибку:« Выражение разрешается для неиспользуемой функции »:
func handleDownload2(iCount:Int) -> (NSData?, NSError?) -> Void {
return { (data: NSData?, error: NSError?) -> Void in {
// received image
print(iCount)
print(data!.length)
}
}
}
Работает отлично. Благодаря! –