【发布时间】:2016-11-30 23:45:56
【问题描述】:
键“children”中包含的数组包含 100 项。
是否可以告诉 SwiftyJSON 获取随机索引?我尝试创建一个随机数
var random = arc4random_uniform(24)
但是当我随机插入时,我得到了错误:
“不能用'UInt32'类型的索引为'JSON'类型的值下标”
我也将它转换为 NSNumber 和同样的东西,我完全迷路了。
func getBackgoundImageData(completed: @escaping DownloadComplete) {
let imageURL = URL(string: IMAGE_URL)!
Alamofire.request(imageURL).responseJSON { response in
switch response.result {
case .success(let value):
let json = JSON(value)
if let url = json["data"]["children"][0]["data"]["preview"]["images"][0]["source"]["url"].string {
self._backgroundImageURL = url
}
case .failure(let error):
print(error)
}
completed()
}
}
【问题讨论】:
-
一般来说,当你使用
["data"]["children"][0]["data"]["preview"]["images"][0]["source"]["url"]之类的东西时,你会遇到问题,因为 Swift 可能无法正确推断所有这些访问的类型。将此行拆分为一系列条件向下转换if let data = json["data"] as [String:Any] ...等等,直到获得最终数组,然后在其上使用随机索引
标签: ios swift swifty-json