使用 writeToURL 方法将数组保存到文件
Posted
技术标签:
【中文标题】使用 writeToURL 方法将数组保存到文件【英文标题】:save array to a file using writeToURL method 【发布时间】:2015-09-13 13:23:58 【问题描述】:我正在尝试将数组保存到 Application Support 文件夹中的文件中。 这是我正在使用的代码:
override func viewDidLoad()
super.viewDidLoad()
let fileManager = NSFileManager()
var suppUrl = try! fileManager.URLForDirectory(NSSearchPathDirectory.ApplicationSupportDirectory, inDomain: NSSearchPathDomainMask.UserDomainMask, appropriateForURL: nil, create: true)
suppUrl = suppUrl.URLByAppendingPathComponent("test")
try! fileManager.createDirectoryAtURL(suppUrl, withIntermediateDirectories: true, attributes: nil)
print(suppUrl.path)
let arrayToSave: [String] = ["1", "2", "3", "4", "5"]
let success = NSArray(array: arrayToSave).writeToURL(suppUrl, atomically: true)
print("did succeed?: \(success)")
调试器抛出:
可选(“/Users/myName/Library/Developer/CoreSimulator/Devices/D573BBEC-D180-4A8A-93FE-BE04E2BBE6C8/data/Containers/Data/Application/911362BF-13C2-49AB-817B-49F2926194A1/Library/Application支持/测试”)
成功了吗? : 假的
为什么是假的?
编辑:缩短版,仍然没有运气:
let fileManager = NSFileManager()
var suppUrl = try! fileManager.URLForDirectory(NSSearchPathDirectory.ApplicationSupportDirectory, inDomain: NSSearchPathDomainMask.UserDomainMask, appropriateForURL: nil, create: true)
let arrayToSave: [String] = ["1", "2", "3", "4", "5"]
let success = NSArray(array: arrayToSave).writeToURL(suppUrl.URLByAppendingPathComponent("test.plist"), atomically: true)
【问题讨论】:
【参考方案1】:您必须指定一个文件名,此时您正试图“保存”失败的目录。
let success = NSArray(array: arrayToSave).writeToURL(suppUrl.URLByAppendingPathComponent("test.plist"), atomically: true)
【讨论】:
感谢您的光临。这也返回 false :( 在Application Support
中查看您的目录test
并删除一个潜在的新目录test.plist
我完全省略了创建测试目录。现在是3线。我用它编辑了我的问题。
您的代码可以在游乐场和真实项目中运行。考虑短版直接将plist文件写入Application Support
这很奇怪。如果我在操场上运行它,它确实会返回 true。如果我将 ApplicationSupportDirectory 更改为 DocumentDirectory,它也会返回 true,但如果我保持原样,则不会返回 true,例如应用程序支持目录。我搜索了一下,似乎ApplicationSupportDirectory默认不存在。以上是关于使用 writeToURL 方法将数组保存到文件的主要内容,如果未能解决你的问题,请参考以下文章
NSDocument 和 writeToURL:ofType:error 的问题:
使用 JS 和 PHP 将 textarea 内容保存在文件中