我在检查多维数组中的值时遇到了问题。检查多维数组中的值是否等于一个字符串swift
我在里面创建了一个数组内的数组。
该数组被称为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 {
非常感谢任何帮助,
p.s.请简单解释一下,因为我是Swift的新手。
你能解释为什么你将'newKeyArray'转换为'AnyObject'吗?另外,您能否更准确地引用错误消息并解释它发生了什么? – matt
我添加了这些细节,我试图将它转换为字符串,但我得到一个错误“无法转换类型的值[[String]]'键入'强制字符串'”或只是让它附加(newKeyArray),它给我错误“参数类型'[[String]]'不符合预期类型'AnyObject'” – Ray