提问者:小点点

用于迭代类对象的Swift闭包


想知道是否有人有一个swift闭包解决方案,可以在包含多个类对象的数组上转换以下for/in循环迭代?该类由字符串类型的两个属性组成。一个类函数实例化多个对象并将它们放入一个数组中。在下面的示例中,数组nhSearchObject有10个索引,其中包含该类的10个对象。

class President{
   var firstName:String 
   var lastName:String
    init(...)
    }       
  // class function creates objects and places them into an array   nhSearchObject

for i in nhSearchObject[0...6] {
    i.firstName = "George"
    i.lastName = "Washington"
}

必须保留下标范围功能,因为我只想更改索引0…6。此外,我不想创建一个新数组。只是对迭代现有数组的10个索引中的数组切片0…6感兴趣,以修改对象属性。


共2个答案

匿名用户

首先你的类是总统(没有总统

class President {
    var firstName:String
    var lastName:String
    init(firstName: String, lastName:String) {
        self.firstName = firstName
        self.lastName = lastName
    }
}

现在给定以下数组

let presidents: [President] = ...

您可以遵循2种方法

presidents[0...6].forEach { president in
    president.firstName = "George"
    president.lastName = "Washington"
}
presidents
    .enumerated()
    .filter { $0.offset <= 6 }
    .forEach { elm in
        elm.element.firstName = "George"
        elm.element.lastName = "Washington"
    }

匿名用户

nhSearchObject. for每一个{0 dollars.firstName="George";0 dollars.lastName="Washington"}