Ios 如何从数组中提取一种类型的值来逐个创建一个单独的数组?
我正试图从属性数组中提取id以形成一个单独的数组。到目前为止,我已经得出了以下结论:Ios 如何从数组中提取一种类型的值来逐个创建一个单独的数组?,ios,swift,swift5,Ios,Swift,Swift5,我正试图从属性数组中提取id以形成一个单独的数组。到目前为止,我已经得出了以下结论: struct Interactions: View { @State var A: [Properties] = [ .init(id: 5, name: "Five"), .init(id: 8, name: "Eight"), .init(id: 2, name: "Two") ] var body: some View { List(loadIdArray(), id:
struct Interactions: View {
@State var A: [Properties] = [
.init(id: 5, name: "Five"),
.init(id: 8, name: "Eight"),
.init(id: 2, name: "Two")
]
var body: some View {
List(loadIdArray(), id: \.self) { i in
Text("\(i)")
}
}
func loadIdArray() -> [Int] {
let ids: [Int] = [1, 2]
for i in 0 ..< self.A.count {
let ids = [self.A[i].id, self.A[i + 1].id]
return ids
}
return ids
}
}
struct交互:视图{
@状态变量A:[属性]=[
.init(id:5,名称:“五”),
.init(id:8,名称:“八”),
.init(id:2,名称:“2”)
]
var body:一些观点{
列表(loadIdArray(),id:\.self){i在
文本(“\(i)”)
}
}
func loadIdArray()->[Int]{
让ID:[Int]=[1,2]
对于0中的i..
问题是我必须手动键入每个[self.A[I+…].id],这会破坏函数的用途
我想要的答案是loadIdArray()=[5,8,2],它会根据“A”数组中的项数自动执行此操作。使用此选项如何:
func loadIdArray() -> [Int] {
return self.A.map { $0.id }
}
您应该从分离视图和模型开始;这在SwiftUI中非常重要,因为它是声明性的。一旦有了一个模型来保存数组,就可以使用一个计算变量来提供一个具有ids@Paulw11你能把它写成代码吗?我认为这是我的迭代中的一个问题,因为它只显示一个self.a.id,必须手动输入。谢谢!我在这件事上耽搁太久了