簡體   English   中英

SwiftUI:JSON 索引始終超出范圍

[英]SwiftUI: JSON index always out of range

我想知道為什么我的索引總是超出范圍。 我正在嘗試在本地解析 JSON 。 這是我的代碼。 謝謝你。

文章 Model

struct Article: Decodable {
    let title: String
    let snapshot: String
}

解析 JSON

class TopicsViewModel: ObservableObject {
@Published var articles = [Article]()

func getArticles(selectedTopic: Int) {
    switch selectedTopic {
    case 0:
        self.articles = try! JSONDecoder().decode([Article].self, from: JSON.data(using: .utf8)!)
    default:
        articles = []
    }
}
}

我在出現上加載數據

.onAppear{
            self.topicsVM.getArticles(selectedTopic: self.whichTopic)
    }

這是錯誤開始

Text(topicsVM.articles[0].title).foregroundColor(Color.black)

第一張圖片,顯示 Model 和 Parse function

第二張圖片,顯示文本

要解決您的問題,您可以在 TopicsView 中執行此操作:

init(whichTopic: Int) {
    self.whichTopic = whichTopic
    self.topicsVM.getArticles(selectedTopic: self.whichTopic)
}

這將確保您的文章數組在構建視圖之前具有您期望的數據。
盡管如此,您仍然應該在您的列表中執行此操作:

                if topicsVM.articles.count > 0 {
                    Text(topicsVM.articles[0].title).foregroundColor(Color.black)
                }

索引超出范圍的原因似乎是因為在構造視圖后填充了“topicsVM.articles”數組。 當然,空數組沒有 [0] 元素。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM