Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何从数组中提取一种类型的值来逐个创建一个单独的数组?_Ios_Swift_Swift5 - Fatal编程技术网

Ios 如何从数组中提取一种类型的值来逐个创建一个单独的数组?

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:

我正试图从属性数组中提取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,必须手动输入。谢谢!我在这件事上耽搁太久了