似乎在堆栈溢出上有其他答案,但没有什么特定于swift。
我正在从包含3个属性的网站对象生成CSV
Struct SiteDetails {
var siteName:String?
var siteType: String?
var siteUrl: String?
}
问题是siteName可能包含一个逗号,因此当我读回CSV文件时,很难将CSV转换回对象,因为有些行有4个或更多CSV元素。
以下是我用于导出为CSV的代码:
func convertToCSV(sites: [SiteDetails]) -> String {
var siteAsCSV = ""
siteAsCSV.appendContentsOf("siteName,siteType,siteUrl\n")
for site in sites {
siteAsCSV.appendContentsOf("\(site.siteName),\(site.siteType),\(site.siteUrl)\n")
}
}
如何阻止这个额外的逗号问题?
答案 0 :(得分:4)
CSV specification建议将包含特殊字符的所有字段换成双引号。
答案 1 :(得分:3)
我设法通过修改为每个字段添加双引号来实现此功能。在Swift中,当你查看Xcode的语法高亮时,这要求你跳过看起来不会运行的引号,但它工作正常。
func convertToCSV(sites: [SiteDetails]) -> String {
var SiteAsCSV = ""
SiteAsCSV.appendContentsOf("siteName,siteType,siteUrl\n")
for site in sites {
SiteAsCSV.appendContentsOf("\"\(site.SiteName)\",\"\(site.Sitetype)\",\"\(site.SiteUrl)\"\n")
}
}