我希望有人能够帮助我找出我正在尝试在 Swift 2.0 中编写(或学习编写)的应用程序时遇到的麻烦。这以前在 Swift 1.2 中有效,但在必要的转换之后,我一直面临错误;
无法使用类型为 '(contenOfURL: NSURL, options: NSDataReadingOptions, error:nil)' 的参数列表调用类型为 'NSData' 的初始化程序
这是我正在使用的代码,略有删节;
...
class func fetchMinionData() -> [Minion] {
let myURL = "https://myurl/test.json"
let dataURL = NSURL(string: myURL)
let data = NSData(contentsOfURL: dataURL!, options: NSDataReadingOptions.DataReadingMappedIfSafe, error: nil)
//THIS IS THE LINE THAT THROWS THE ERROR
let minionJSON = JSON(data)
var minions = [Minion]()
for (_ , minionDictionary) in minionJSON {
minions.append(Minion(minionDetails: minionDictionary))
}
return minions
}
...
请注意,我计划在下载数据后使用 SwiftyJSON 库进一步解析数据。我在网上无休止地搜索,但我似乎无法弄清楚这一点!谢谢!
最佳答案
如果您使用 Swift 2,则不应传递最后一个参数“错误”。而是尝试围绕 NSData 初始化。如果需要在外部访问数据,则将 init 结果放入 var 并转换为 let 修改代码
var optData:NSData? = nil
do {
optData = try NSData(contentsOfURL: dataURL!, options: NSDataReadingOptions.DataReadingMappedIfSafe)
}
catch {
print("Handle \(error) here")
}
if let data = optData {
// Convert data to JSON here
}
关于nsdata - 问题让 NSData 请求在 Swift 2.0 中工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32127228/