Arrays Swift数组-将每个项目转换为一个对象,并返回带有转换对象的新数组
假设我有一个结构,如:Arrays Swift数组-将每个项目转换为一个对象,并返回带有转换对象的新数组,arrays,swift,dictionary,transform,Arrays,Swift,Dictionary,Transform,假设我有一个结构,如: struct Person { var name: String var photo: String } 和使用结构的数组: let persons = [ Person(name: "John", photo: "john.png"), Person(name: "Mike", photo: "mike.png"), Person(name: "Skye", photo: "skye.png") ] 我想在Swift中创建一个
struct Person {
var name: String
var photo: String
}
和使用结构的数组:
let persons = [
Person(name: "John", photo: "john.png"),
Person(name: "Mike", photo: "mike.png"),
Person(name: "Skye", photo: "skye.png")
]
我想在Swift中创建一个数组扩展,它是以下的简写方式:
let newPersons = persons.map { person -> Person in
var temp = person
temp.photo = "http://server/uploads/\(temp.photo)"
return temp
}
我不想声明person对象的副本,转换所需字段并在map closure参数中返回新对象。我认为您可能解决了错误的问题。最好只在
Person
上创建一个computed属性,该属性返回photoURL:URL
,基于baseURL.appendingPathComponent(self.photoName)
,如下所示: