arrays - 检查多维数组中的值是否等于字符串 swift

标签 arrays swift multidimensional-array

我在检查多维数组中的值时遇到问题。

我正在一个包含 3 个数组的数组中创建一个数组。

该数组称为 profilerdata,变量“key”是一个字符串,因此它应该只是这些数组中的三个字符串。

我日志中的数组作为 SwiftDeferredNSArray,我认为这是第一个问题,因为我读过这是一个非可变数组。

var newKeyArray = [[key],[String](),[""]]

for thing in dataArray as! [[String: AnyObject]] {
    newKeyArray[1].append("0")
}

print(newKeyArray)
profilerData.append(newKeyArray as AnyObject)

然后我尝试像这样读取数组中的值:

var n = 1
while n <= elementArray.count {
    if profilerData[n][0] as! String == headertitle {
        print("it matches")
    } else {
        print("it does not match")
    }

    n += 1
}

变量“headertitle”也是一个字符串,但是当它运行时我得到一个错误:

Could not cast value of type 'Swift._SwiftDeferredNSArray' (0x104ce8040) to 'NSString' (0x101f97c60).

这个错误发生在这一行

if profilerData[n][0] as! String == headertitle {

非常感谢任何帮助,

附注请简单地解释一下,因为我是 Swift 的新手。

最佳答案

你的数组比你想象的要深一层。要看到这一点,请试试这段代码,它简化了您正在做的事情:

let key = "key"
let newKeyArray = [[key],[String](),[""]]
var profilerData = [Any]()
profilerData.append(newKeyArray)

let oneLevel = profilerData[0] as! Array<Array<String>>
let twoLevel = oneLevel[0] // Array<String>
let threeLevel = twoLevel[0] // String

关于arrays - 检查多维数组中的值是否等于字符串 swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45970327/

相关文章:

不同设备尺寸的 iOS Auto Layout 约束值

java - JDBC - 填充 2D double 组时出现问题

C#矩形数组排序

arrays - 为什么 awk 似乎随机化数组?

javascript - 使用 "*"运算符在输入内进行乘法

PHP explode 并赋值给一个多维数组

ios - 将字符串/对象值传递给另一个 ViewController

javascript - 所有的区 block 链数组实现都是不正确的吗?

ios - iPhone,iOS 8 : How to presentViewController smaller than original view controller?

php - 展开数组并删除前缀