Skip to main content
 首页 » 数据库

ios之Swift函数错误: 'Float' is not convertible to 'Void'

2024年01月01日60tuyile006

我有以下函数,它生成一个快速的 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 在我看来很可疑...