【发布时间】:2016-05-04 06:35:46
【问题描述】:
我刚刚打开了一个很久没有修改过的项目,并注意到一个警告:“在未来的 Swift 版本中将删除 Curried 函数声明语法;使用单个参数列表”。
我不太确定在这种情况下如何抢先删除我的咖喱函数(这对我来说似乎是完美的解决方案)。我目前正在使用一个将其他参数传递给完成处理程序。
func getCoursesForProfile(profileName: String, pageNumber: Int) {
if let url = NSURL(string:profileBaseURL + profileName + pageBase + String(pageNumber)) {
let task = NSURLSession.sharedSession().dataTaskWithURL(url, completionHandler: parseSessionCompletion(profileName, pageNumber: pageNumber))
task.resume()
}
}
func parseSessionCompletion(profileName: String, pageNumber: Int)(data: NSData?, response: NSURLResponse?, error: NSError?) {
我的问题:有没有办法完成柯里化的移除,同时仍然具有解析“已完成会话”的可重用函数?
我想到的唯一“简单”方法是拥有一个类的不同实例并将 profileName/pageNumber 保留在函数范围之外。但这在多种方面似乎很浪费。
【问题讨论】: