循环数组 - 无法调用追加

时间:2017-06-06 22:17:10

标签: arrays swift

这是我的阵列:

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)

我可以在这做什么建议?

2 个答案:

答案 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")
}

目前,当我想要访问每个数组的内容时,您只是尝试将整个数组追加到字符串(这是不允许的),一个接一个地。