for tempExportData in exportDataArray {
let tmpRegNO:NSString = (tempExportData as AnyObject).object(forKey: kRegisteredNo) as! NSString
print("tmpRegNO is",tmpRegNO)
var tmpNoArray:Array = [String]()
tmpNoArray.append(tmpRegNO as String)
print("Count is",tmpNoArray.count)
print("ARRAY is",tmpNoArray)
}
我正在尝试将字符串值,即tmpRegNO
添加到数组tmpNoArray
。
在这里,我一次只能向数组添加一个值。
如何在第二次循环时为该数组添加下一个值。
你需要在你的tempNoArray
循环之外移动for in
初始化,如果不是你的数组将被初始化一次为你的exportDataArray
中的每个项目仅保留las项目作为结果
你需要这样的东西
var tmpNoArray:Array = [String]()
for tempExportData in exportDataArray{
if let tmpRegNO = tempExportData[kRegisteredNo] as? String
{
print("tmpRegNO is",tmpRegNO)
tmpNoArray.append(tmpRegNO as String)
print("Count is",tmpNoArray.count)
print("ARRAY is",tmpNoArray)
}
}
如前所述,您必须在进入循环之前声明数组。
你的代码非常客观。这是一个更加迅速的版本。不要注释编译器可以推断和使用键订阅的类型,而不是丑陋的转换为AnyObject
和objectForKey:
。
var tmpNoArray = [String]()
for tempExportData in exportDataArray {
let tmpRegNO = tempExportData[kRegisteredNo] as! String
print("tmpRegNO is",tmpRegNO)
tmpNoArray.append(tmpRegNO)
print("Count is",tmpNoArray.count)
print("ARRAY is",tmpNoArray)
}
您甚至可以将整个表达式写在一行中:
let tmpNoArray = exportDataArray.flatMap { $0[kRegisteredNo] as? String }