这是我的阵列:
std::vector
我正在尝试将它们附加到csv文件中,如下所示:
var tblID = [String]()
var tblUser = [String]()
var tblEmployee = [String]()
但在链接 let fileName = "Tasks.csv"
let path = NSURL(fileURLWithPath: NSTemporaryDirectory()).appendingPathComponent(fileName)
var csvText = "ID,USER,EMPLOYEE\n"
for content in [tblID, tblUser, tblEmployee] {
csvText.append(content) // Error here
}
中,收到错误消息:csvText.append(content)
我可以在这做什么建议?
答案 0 :(得分:0)
您正尝试使用append方法将字符串数组添加到单个字符串中,但只需要一个字符串。
假设tblID,tblUser& tblEmployee总是包含相同数量的项目(否则会崩溃)你可以这样做:
for content in [tblID, tblUser, tblEmployee] {
for loop in 0..<tblID.count {
csvText.append("\(tblID[loop]),\(tblUser[loop]),\(tblEmployee[loop]))\n")
}
}
这将添加一行,将添加一行由逗号分隔的ID,User,Employee和最后一行的新行组成。
编辑:
要处理数组大小不匹配的情况,可以执行以下操作:
it tblID.count != tblUser.count || tblID.count != tblEmployee.count {
print ("error")
} else {
// Do the above here
}
您可以做的最好的事情是添加数组的内容或打印错误。你不能添加一些然后打印错误,因为如果tblID有5个条目并且tblUser有4个你不知道它是否是tblUser的第一个条目缺失或最后一个条目
答案 1 :(得分:0)
没有数据样本很难说,但我认为这就是你想要做的事情:
// might want to verify that all three arrays are the same size before doing this
for i in 0..<tblID.length {
csvText.append("\(tblID[i]),\(tblUser[i]),\(tblEmployee[i])\n")
}
目前,当我想要访问每个数组的内容时,您只是尝试将整个数组追加到字符串(这是不允许的),一个接一个地。