我有一个AnyObject类型的数组,如下所示:[[String:AnyObject]]
animalList = [["name":ABC,"color":red],["name":DEF,"color":green],["name":GHI,"color":blue]]
模型类是这样的:
class ModelAnimal {
var name: String
var color: String
init(name: String, color: String){
self.name = name
self.color = color
}
}
Run Code Online (Sandbox Code Playgroud)
如何将它们放在ModelAnimal类型的数组中:
var myList = Array<ModelAnimal>()
for var i = 0; i < animalList.count; i++ {
myList.
}
Run Code Online (Sandbox Code Playgroud)
使用map
创建类型的新数组[ModelAnimal]
:
let animalList: [[String: AnyObject]] = [["name": "ABC", "color":"red"], ["name": "DEF", "color": "green"], ["name": "GHI", "color": "blue"]]
class ModelAnimal {
var name: String
var color: String
init(name: String, color: String){
self.name = name
self.color = color
}
}
let myList = animalList.map { ModelAnimal(name: $0["name"] as? String ?? "", color: $0["color"] as? String ?? "") }
Run Code Online (Sandbox Code Playgroud)
这也使用条件转换 as? String
和nil合并运算符 ??
来安全地从字典数组中提取值并将它们传递给构造函数ModelAnimal
.
归档时间: |
|
查看次数: |
1408 次 |
最近记录: |