iOS10 + Xcode8 documentDirectory怪异的行为

时间:2016-12-16 18:26:55

标签: ios swift filesystems foundation

似乎在Xcode8 / Swift3 / iOS10中的documentDirectory,在一个框架中,在iOS上似乎是不可写的。

API使用/尝试过:

FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)

NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)

(最后一个在Swift中似乎不是首选,我能理解)

现在,每当我尝试将文件写入此区域返回的URL时,我似乎无法这样做(模拟器和设备)。下载容器或检查它也不会显示文件(我尝试了几种写入方法)。另外,尝试创建要写入的目录似乎也失败了。

奇怪的是,在使用的API或FileManager本身中没有返回错误。

我有些遗憾吗?这是我应该报告的错误吗?目前我转而在Library /中创建一个目录,因为它似乎工作,不应该像Library / Cache /那样易变。

用于编写的代码(在我决定执行此操作之前使用了realm.io):

let URLs = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)
let data = Data.random(32) // Generates a 32 byte long random blob 
try! data.write(to: URLs.last!) // Crashing here with a forced unwrap is fine

2 个答案:

答案 0 :(得分:0)

您要写入的路径无效 - 您将在目录路径中传递而不是传递到要创建的文件的路径。你可以制作这样的路径:

let path = NSString(string: URLs.last!.path).appendingPathComponent("foo.txt")

答案 1 :(得分:0)

原来你需要完全重置模拟器并重启Xcode。有趣的东西。