我想枚举我的Any
个对象数组,可以访问元素索引。但是,迅速抛出一个错误:
输入'() - > EnumeratedSequence百分比抑制率数据的任何] GT;'不符合协议'序列'`
我的代码是:
var arrValues : [Any]!
for (index, ob) in arrValues.enumerated() {
print("\(index): '\(ob)'")
}
如何解决这个问题?
答案 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)
您需要遵循正确的语法,我认为您的行为如下图所示,
但是,实际的代码是,
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)'")
}