数组不可用:请从您的延迟序列构造一个数组:Array(...)

时间:2015-09-17 23:21:57

标签: ios swift

我刚从swift 1.2升级到2.我得到一个数组'不可用:请从你的懒人序列构造一个数组:数组(...)我似乎无法将我的前提包围如何解决这个问题

MyVariables.selectedUser = MyVariables.dictionary.keys.array[indexPath.row] as String

“MyVariables.dictionary.keys.array [indexPath.row] as String”应该更改为什么?

2 个答案:

答案 0 :(得分:10)

它说array返回的延迟序列的keys属性不再可用。在Swift 2中,您使用初始化程序将惰性序列转换为数组:

MyVariables.selectedUser = Array(MyVariables.dictionary.keys)[indexPath.row] as String

答案 1 :(得分:1)

在Swift1.2中,Dictionary上的值返回LazyForwardCollection>具有返回Array的.array属性的类型。

在Swift2中,Dictionary上的值返回LazyMapCollection< [Key:Value],Value>,并且.array属性被放弃,因为我们可以使用Array(dict.values)构造Array。

在这种情况下,您可以使用这些行

** let array = Array(arrayLiteral:myVariable!.keys)

var selectedUser = [indexPath.row] **