我想在for循环中为数组quandlURLs运行下面的函数。我得到一行“loadDataFromURL”错误,说:不能将类型[String]的值转换为类型'Sting'的预期参数。有人可以告诉我我在这里错过了什么。谢谢!!FOR IN循环中的错误
class func getDataFromQuandlWithSuccess(success: ((Quandl: NSData!) -> Void)) {
let quandlGold = "https://www.quandl.com/api/v3/datasets/LBMA/GOLD.json?auth_token=xyzDP7Cj-2F_Jss7sYHf&rows=1"
quandlURLs = [quandlGold, quandlSilver,quandlPlatinum,quandlPalladium]
var index: Int
var urlData = [String]()
for index in quandlURLs {
loadDataFromURL(NSURL(string: quandlURLs[index])!, completion:{(data, error) -> Void in
//2
if let urlData[index] = data {
//3
success(Quandl: urlData[index])
//below worked and showed raw data
//print("Successful \(urlData)")
}
})
}
}
这里是loadDataFromURL功能
class func loadDataFromURL(url: NSURL, completion:(data: NSData?, error: NSError?) -> Void) {
let session = NSURLSession.sharedSession()
// Use NSURLSession to get data from an NSURL
let loadDataTask = session.dataTaskWithURL(url, completionHandler: { (data: NSData?, response: NSURLResponse?, error: NSError?) -> Void in
if let responseError = error {
completion(data: nil, error: responseError)
} else if let httpResponse = response as? NSHTTPURLResponse {
if httpResponse.statusCode != 200 {
let statusError = NSError(domain:"com.raywenderlich", code:httpResponse.statusCode, userInfo:[NSLocalizedDescriptionKey : "HTTP status code has unexpected value."])
completion(data: nil, error: statusError)
} else {
completion(data: data, error: nil)
}
}
})
loadDataTask.resume()
}
}
可以突出错误行吗? – Jacky