【发布时间】:2021-04-13 09:42:25
【问题描述】:
我目前正在开发一个 IOS 应用程序,我正在尝试使用获取的 json 数据设计一个轮播。这就是我获取目标 json 数据的方式。
class loadDate: ObservableObject {
@Published var todos = [Result]()
init() {
let url = URL(string: "https://api.themoviedb.org/3/movie/now_playing?api_key=<api_key>&language=en-US&page=1")!
URLSession.shared.dataTask(with: url) { data, response, error in
// step 4
if let data = data {
if let decodedResponse = try? JSONDecoder().decode(Response.self, from: data) {
DispatchQueue.main.async {
self.todos = decodedResponse.results
}
// everything is good, so we can exit
return
}
}
print("Fetch failed: \(error?.localizedDescription ?? "Unknown error")")
}.resume()
}
}
看起来我只能在列表视图中使用数据,例如,
struct ContentView: View {
@ObservedObject var fetch = loadDate()
var body: some View {
HStack {
List(fetch.todos) { item in
HStack {
VStack(alignment: .leading) {
Text(item.title)
.font(.headline)
Text(item.poster_path)
//
}
}
}
}
}
}
在此列表视图中,我可以访问所有元素,例如使用 fetch.todos[0].title。但是,如果在列表视图之外,fetch.todos[0].title 会失败,有人可以就如何使用列表视图之外的数据提供一些建议。
【问题讨论】:
-
您想在 fetch.todos 的列表之外使用什么?只是任何随机元素或用户选择的东西?