以下在获取 csv 文件的内容时返回 nil。但是,将 csv 表减少到 10 行将正常工作,输出 csv 文件的内容。
原始的 csv 有大约 400,000 个字符排列在 500 行和 11 列中。是什么导致它在原始 csv 中返回 nil?
let dbPath = "/Volumes/Gios2TWD/myDB.csv"
var error: NSError?
let csvContent = NSString(contentsOfFile: dbPath, encoding:NSUTF8StringEncoding, error: &error) as String!
println(csvContent)
println(error)
我正在运行 XCode 版本 6.1 (6A1030)
错误:
Optional(Error Domain=NSCocoaErrorDomain Code=261 "The file “myDB.csv” couldn’t be opened using text encoding Unicode (UTF-8)." UserInfo=0x10050c5b0 {NSFilePath=/Volumes/Gios2TWD/myDB.csv, NSStringEncoding=4})
最佳答案
您需要像这样测试错误的代码:
let dbPath = "/Volumes/Gios2TWD/myDB.csv"
var error: NSError?
let csvContent = NSString(contentsOfFile: dbPath, encoding:NSUTF8StringEncoding, error: &error)
if csvContent != nil {
// do something with the string
}
else {
println("error: \(error)")
}
然后尝试理解任何错误消息。如果您需要帮助,请将代码和完整的错误消息发布到 SO。
错误消息如:“无法使用文本编码 Unicode (UTF-8) 打开”它不是 UTF-8 文件。该文件可能已损坏,或者可能是另一种格式。尝试 NSMacOSRomanStringEncoding
,它是一种非常宽容的 8 位 ASCII 编码。它也可能是另一种 8 位 ASCII 编码。
注意:除非您 100% 确定它们在任何情况下都不会为 nil,否则不要显式解包。
关于swift - "contentsOfFile"返回nil,可能原因,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26453711/