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

7

我刚刚从Swift 1.2升级到2. 我得到了一个"array' is unavailable: please construct an Array from your lazy sequence: Array(...)"的错误提示,但是我不知道如何修复。

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

"

\"MyVariables.dictionary.keys.array[indexPath.row] as String\"应该改成什么?

"
2个回答

10

这意味着通过 keys 返回的惰性序列的 array 属性不再可用。在 Swift 2 中,您可以使用初始化程序将惰性序列转换为数组:

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

1

在 Swift1.2 中,字典中的值返回 LazyForwardCollection> 类型,该类型具有 .array 属性,可返回 Array。

在 Swift2 中,字典中的值返回 LazyMapCollection<[Key : Value], Value>,放弃了 .array 属性,因为我们可以使用 Array(dict.values) 构造数组。

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

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

var selectedUser = [indexPath.row]**


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接