gpt4 book ai didi

swiftui - 使用 ForEach 方法时如何将默认值设置为 Range

转载 作者:行者123 更新时间:2023-12-04 15:12:26 28 4
gpt4 key购买 nike

我目前正在使用 SwiftUI 开发应用程序。
我想知道如何设置默认值 countRange<Int>当我使用 ForEach方法。
因为使用异步方法创建的数组对象,当我使用 ForEach方法我必须设置一个默认值。
如果我设置默认值只是 0 ,我收到以下错误:

Cannot convert value of type 'Int' to expected argument type 'Range<Int>'
我如何将值设置为 Range<Int>然后?

以下是代码:
*我要设置 0作为默认值
内容 View .swift
...
@EnvironmentObject var appState: AppState

ForEach(0..<appState.arrayInfos?.count ?? 0 ,id: \.self){ index in
VStack{
InfoRow(no: index,info:appState.arrayInfos![index] )
}
}
...
AppState.swift
class AppState: ObservableObject {

@Published var arrayInfos:[ArrayInfos]?

}

...
let task = session.dataTask(with: urlRequest) {
(data, response, error) in

DispatchQueue.main.async {
do{ self.arrayInfos = try JSONDecoder().decode([ArrayInfos].self, from: responseData)
}catch{
print("Error: did not decode")
return
}
}
}
task.resume()
...

Xcode:版本 12.0.1

最佳答案

您需要使用 ForEach 的动态变体, 否则数据出现时不会更新

ForEach(appState.arrayInfos?.indices ?? 0..<0, id: \.self) { index in
VStack {
InfoRow(no: index, info: appState.arrayInfos![index])
}
}

关于swiftui - 使用 ForEach 方法时如何将默认值设置为 Range<Int>?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64966763/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com