我正在将NSData示例的内容写入文件。我目前正在使用XcodePlayground。
这是我的代码:
let validDictionary = [
"numericalValue": 1,
"stringValue": "JSON",
"arrayValue": [0, 1, 2, 3, 4, 5]
]
let rawData: NSData!
if NSJSONSerialization.isValidJSONObject(validDictionary) {
do {
rawData = try NSJSONSerialization.dataWithJSONObject(validDictionary, options: .PrettyPrinted)
try rawData.writeToFile("newdata.json", options: .DataWritingAtomic)
} catch {
// Handle Error
}
}
我在资源中有一个名为newdata.json的文件,但当我检查它时,里面什么都没有。我也尝试删除并查看是否会创建该文件,但仍然不起作用。
3条答案
按热度按时间ig9co6j11#
使用以下分机:
eivnm1vs2#
您的代码正确,但未将文件写入您预期的位置。Swift Playgrounds是沙盒,文件位于系统的另一部分,而不是您项目的resources文件夹中。
您可以通过立即尝试读取文件来检查该文件是否确实被保存,如下所示:
下面是Tom的评论:具体地说,文件位于像
/private/var/folders/bc/lgy7c6tj6pjb6cx0p108v7cc0000gp/T/com.apple.dt.Xcode.pg/containers/com.apple.dt.playground.stub.iOS_Simulator.MyPlayground-105DE0AC-D5EF-46C7-B4F7-B33D8648FD50/newdata.json.
这样的位置vulvrdjw3#
因为你使用的是Xcode playgrounds,你可以使用共享的playground数据位置。你可以找到这个我导入
PlaygroundSupport
,然后使用它定义的playgroundSharedDataDirectory
URL:这将给出一个可以在playgrounds中使用的目录位置,* 但此目录在创建它之前并不存在 *。在使用它之前,请执行以下操作:
现在目录已经存在,您可以在那里读写数据了
然后像任何普通文件URL一样使用它,例如: