[英]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)
要解決您的問題,您可以在 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.