返回一个空的 JSON 数组导致 Swift 中的越界错误
Posted
技术标签:
【中文标题】返回一个空的 JSON 数组导致 Swift 中的越界错误【英文标题】:Returning an empty JSON array causing out of bounds error in Swift 【发布时间】:2016-02-18 01:13:32 【问题描述】:我在 Swift 中访问一个 JSON 数组:
genres: [
id: 6,
title: "Comedy"
],
我正在使用代码:
if let genreInfo = jsonResult["genres"]?[0] as? [String: AnyObject]
let genre = genreInfo["title"] as? String
genreArray.append(genre)
如果存在流派但如果流派 JSON 数据为 [ ] 则有效,我得到一个数组越界错误。有没有办法重构它,所以它不会导致错误?
【问题讨论】:
【参考方案1】:问题是你假设,如果数组存在,那么它至少有一个值。这会导致您的问题。
试试这个
if let genreInfo = jsonResult["genres"]?.first as? [String: AnyObject]
let genre = genreInfo["title"] as? String
genreArray.append(genre)
【讨论】:
我刚试过你的代码,它抛出错误:“'AnyObject'类型的值首先没有成员”。 @tylerD:也许你把它改成了firstObject
?在这种情况下,这就是为什么你有一个NSArray
,而不是一个原生的 Swift 数组。以上是关于返回一个空的 JSON 数组导致 Swift 中的越界错误的主要内容,如果未能解决你的问题,请参考以下文章
使用 Alamofire 和 Swift 返回嵌套 JSON 数组中的值
Facebook Graph API me / accounts返回空的Json数据数组
JSON .count 数组在 Swift 4 中总是返回 0