2015-11-23 35 views
1

在我的老斯威夫特1码我能做到这一点:Swift 2.1初始化字符串数组的新方法?

class MyArrayLists { 

    var myarray = [String, String] 

    init(){ 

     myarray.append("First String", "Second String.") 
    } 

} 

现在准备在那儿开我的代码,并试图将其转换为2.1后,它告诉我,我不能再这样下去了。接下来的声明,我们看到:

预期的会员名称或构造函数调用

旁边附加声明我看到:

不能调用类型的参数追加(字符串,字符串)

什么改变?

+0

我的阵列应该是什么?一个字符串数组,一个2字符串元组的数组? – luk2302

+0

嘿,好像你想要使用一个字典,在这种情况下,替换var myarray = [字符串,字符串]为var myarray = [String:String]() 要添加您可以使用myarray [“DictID”] = “DictValue” – darkndream

+0

不,我需要一个数组中的两个字符串,它不是一个键和值的排序,它是两个值。 –

回答

2

与SWIFT 2您明确必须声明的对象的类型的阵列中的括号中:

class MyArrayLists { 

    var myarray: [(String, String)] = [(String, String)]() 

    init(){ 

     self.myarray.append(("First String", "Second String.")) 
    } 

} 
2

用于推断

[String, String] 

编译器实际上是元组的数组:

[(String, String)] 

和附加的一对值与

myarray.append("First String", "Second String.") 

是sytactic糖为实际发生在场景后面:

myarray.append(("First String", "Second String.")) 

但是现在这种自动转换已被弃用。

的解决方案是声明适当的类型,和追加适当的元组:

var myarray = [(String, String)]() 

myarray.append(("First String", "Second String."))