在 Swift 游乐场写入文件时出错
Error writing a file in Swift Playground
不确定为什么会出现此错误。我按照指示在文档中创建了文件夹'Shared Playground Data'。有没有人有任何见解?
import PlaygroundSupport
import Foundation
var fileName = "Csv.csv"
var csvText = "Date,Task,Time Started,Time Ended\n"
fileName.append(csvText)
let fileUrl = playgroundSharedDataDirectory.appendingPathComponent(fileName)
do {
try fileName.write(to: fileUrl, atomically: true, encoding: .utf8)
} catch {print("error")}
你的代码毫无意义。为什么要将列标题附加到文件名?还有为什么要把fileName
的内容写成fileUrl
?
您可能需要以下内容:
let fileName = "Csv.csv"
let csvText = "Date,Task,Time Started,Time Ended\n"
let fileUrl = playgroundSharedDataDirectory.appendingPathComponent(fileName)
do {
try csvText.write(to: fileUrl, atomically: true, encoding: .utf8)
} catch {
print(error)
}
我不知道是哪个 Xcode 引入了这个错误,但是 Xcode 13 beta 2 上的 Playgrounds 无法找到 playgroundSharedDataDirectory
目录,因此,改为执行以下操作:
Swift 5 个版本
let docDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileName = "Csv.csv"
let outputFileUrl = docDirectory.appendingPathComponent(fileName)
let csvText = "Date,Task,Time Started,Time Ended\n"
do {
try csvText.write(to: outputFileUrl, atomically: true, encoding: .utf8)
} catch {
print (error)
}
不确定为什么会出现此错误。我按照指示在文档中创建了文件夹'Shared Playground Data'。有没有人有任何见解?
import PlaygroundSupport
import Foundation
var fileName = "Csv.csv"
var csvText = "Date,Task,Time Started,Time Ended\n"
fileName.append(csvText)
let fileUrl = playgroundSharedDataDirectory.appendingPathComponent(fileName)
do {
try fileName.write(to: fileUrl, atomically: true, encoding: .utf8)
} catch {print("error")}
你的代码毫无意义。为什么要将列标题附加到文件名?还有为什么要把fileName
的内容写成fileUrl
?
您可能需要以下内容:
let fileName = "Csv.csv"
let csvText = "Date,Task,Time Started,Time Ended\n"
let fileUrl = playgroundSharedDataDirectory.appendingPathComponent(fileName)
do {
try csvText.write(to: fileUrl, atomically: true, encoding: .utf8)
} catch {
print(error)
}
我不知道是哪个 Xcode 引入了这个错误,但是 Xcode 13 beta 2 上的 Playgrounds 无法找到 playgroundSharedDataDirectory
目录,因此,改为执行以下操作:
Swift 5 个版本
let docDirectory = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0]
let fileName = "Csv.csv"
let outputFileUrl = docDirectory.appendingPathComponent(fileName)
let csvText = "Date,Task,Time Started,Time Ended\n"
do {
try csvText.write(to: outputFileUrl, atomically: true, encoding: .utf8)
} catch {
print (error)
}