【发布时间】:2017-08-30 21:59:33
【问题描述】:
我在检查多维数组中的值时遇到问题。
我在一个包含 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”也是一个字符串,但是当它运行时我得到一个错误:
无法将“Swift._SwiftDeferredNSArray”(0x104ce8040) 类型的值转换为“NSString”(0x101f97c60)。
此行出现此错误
if profilerData[n][0] as! String == headertitle {
非常感谢任何帮助,
附言请简单解释一下,因为我是 Swift 新手。
【问题讨论】:
-
您能解释一下为什么要将
newKeyArray转换为AnyObject吗?另外,您能否更准确地引用错误消息并解释它出现在哪一行? -
我已经添加了这些详细信息,我尝试将其转换为字符串,但我收到错误“无法将类型 '[[String]]' 的值转换为强制类型'String'”或直接离开它追加(newKeyArray),这给了我错误“参数类型'[[String]]'不符合预期的类型'AnyObject'”
标签: arrays swift multidimensional-array