在swift中枚举Any对象的数组

时间:2017-07-21 10:19:07

标签: swift

我想枚举我的Any个对象数组,可以访问元素索引。但是,迅速抛出一个错误:

  

输入'() - > EnumeratedSequence百分比抑制率数据的任何] GT;'不符合协议'序列'`

我的代码是:

var arrValues : [Any]!

for (index, ob) in arrValues.enumerated() {
    print("\(index): '\(ob)'")
}

如何解决这个问题?

3 个答案:

答案 0 :(得分:1)

这就是你的方式

    var arrValues = [Any]()
    for var i in 0..<arrValues.count {

        print("\(i): '\(arrValues[i])'")
    }

这也可行

var arrValues = [Any]()
for (index, ob) in arrValues.enumerated() {
    print("\(index): '\(ob)'")
}

答案 1 :(得分:1)

您需要遵循正确的语法,我认为您的行为如下图所示,

enter image description here

但是,实际的代码是,

for (index, ob) in arrValues.enumerated(){
//.....
}

此外,您需要Optional var来检查它是否有价值。

    var arrValues : [Any]?

    if arrValues?.count != nil{
        for (index, ob) in (arrValues?.enumerated())! {

            print("\(index): '\(ob)'")
        }
    }else{
        print("Array is Empty")
    }

输出

点击here查看输出。

答案 2 :(得分:1)

看起来你在没有创建实例的情况下声明一个数组。

您可以使用以下代码段:

var arrValues = [Any]()

for (index, ob) in arrValues.enumerated() {
    print("\(index): '\(ob)'")
}