我有一个带有getName func的对象列表,它返回一个字符串,我希望通过遍历第一个列表并调用对象函数来传递它来填充另一个字符串列表。现在我的代码看起来像这样。
let brT = Skill(name: "brT", difficulty: 0.6)
let brP = Skill(name: "brP", difficulty: 0.7)
let brS = Skill(name: "brS", difficulty: 0.7)
let bkT = Skill(name: "bkT", difficulty: 0.6)
let bkP = Skill(name: "bkP", difficulty: 0.6)
let bkS = Skill(name: "bkS", difficulty: 0.6)
let list1 = [brT, brP, brS, bkT, brP, brS]
var list: <String>
for (index, element) in list1.enumerated() {
list.append(element.getName())
}
我正在尝试为应用程序执行此操作,因此字符串列表显示在表视图中,然后double将对所有双精度求和并显示到表下方的UI标签。最后我需要查看String列表以查找可以将对象字符串变量添加到表视图的搜索栏,并将double添加到另一个列表中,该列表执行上面提到的标签输出,我在右边跟踪?
答案 0 :(得分:0)
您应该像这样声明和初始化列表:
var list = [String]()
与:
相同var list = Array<String>()
此外,这里不需要enumerated()
。只是做:
for element in list1 {
list.append(element.getName())
}
或者,更好的是,使用map
一步完成所有事情,使list
成为常数:
let list = list1.map { $0.getName() }