2017-06-03 73 views
1

我有一个有一个的getName FUNC返回一个字符串,并期待通过第一个列表循环和调用对象的功能,通过填充字符串的另一个列表对象的列表它通过。现在我的代码看起来是这样的。斯威夫特3传递ArrayList对象变量字符串数组

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()) 
    } 

我想对于一个应用程序,所以字符串显示在表视图列表中做到这一点,然后双击将总结所有的双打和显示表下方的UI标签。最后,我需要的字符串列表是能够通过一个搜索栏可以在对象字符串变量添加到表视图,并添加双到另一个列表,做标签输出我上面提到的看着,我是在右边跟踪?

回答

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() }