【问题标题】:Returning an empty JSON array causing out of bounds error in Swift返回一个空的 JSON 数组导致 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 数据为 [ ] 则有效,我得到一个数组越界错误。有没有办法重构它,所以它不会导致错误?

【问题讨论】:

    标签: ios arrays json swift dictionary


    【解决方案1】:

    问题是你假设,如果数组存在,那么它至少有一个值。这会导致您的问题。

    试试这个

    if let genreInfo = jsonResult["genres"]?.first as? [String: AnyObject] {
        let genre = genreInfo["title"] as? String
        genreArray.append(genre)
    }
    

    【讨论】:

    • 我刚试过你的代码,它抛出错误:“'AnyObject'类型的值首先没有成员”。
    • @tylerD:也许你把它改成了firstObject?在这种情况下,这就是为什么你有一个NSArray,而不是一个原生的 Swift 数组。
    猜你喜欢
    • 1970-01-01
    • 2020-03-11
    • 2016-04-21
    • 1970-01-01
    • 1970-01-01
    • 2013-04-02
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    相关资源
    最近更新 更多