我有以下函数,它生成一个快速的 NSURLConnection 请求并返回页面的内容。该函数在我的返回行上给我一个错误 'Float' is not convertible to 'Void'
func getDJI(year: Int, month: Int, day: Int) -> Float {
let baseURL = "http://geo.crox.net/djia"
var request = NSMutableURLRequest(URL: NSURL(string: String(format:"%@/%02d/%02d/%02d",baseURL, year, month, day))!)
httpGet(request){
(data, error) -> Void in
if error != nil {
println(error)
} else {
return (data as NSString).floatValue
}
}
}
出了什么问题?
请您参考如下方法:
这里有两个问题。
首先,您有一个应该返回 Void 的闭包,您正试图从中返回一个 Float,其次,您有一个应该返回 Float 的函数,但您永远不会从中返回任何东西。
最有意义的可能是您的外部函数返回 Void,并且它接受一个需要 Float 并返回 Void< 的闭包:
func getDJI(year: Int, month: Int, day: Int, completion:(Float)->Void) -> Void {
let baseURL = "http://geo.crox.net/djia"
var request = NSMutableURLRequest(URL: NSURL(string: String(format:"%@/%02d/%02d/%02d",baseURL, year, month, day))!)
httpGet(request){
(data, error) -> Void in
if error != nil {
println(error)
} else {
completion((data as NSString).floatValue)
}
}
}
郑重声明...(data as NSString).floatValue 在我看来很可疑...
