实机测试时 NSKeyedArchiver 保存数据失败

2015-09-29 15:41:13 +08:00
 machinemxy

我的保存代码如下
```
let filePath =NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory,NSSearchPathDomainMask.UserDomainMask, true)[0] + "gameBrain.dat"

let successful = NSKeyedArchiver.archiveRootObject(gameBrain, toFile: filePath)

if successful {
print("success")
} else {
print("fail")
}
```
我在模拟器测试时,顺利保存成功,并显示"success",而连接实机测试时,保存失败并显示"fail",但是也没有中断退出。难道说实机无法访问这个用户路径吗?

4507 次点击
所在节点    Swift
1 条回复
machinemxy
2015-09-30 14:23:45 +08:00
自己解决了。"gameBrain.dat"应为"/gameBrain.dat"。如果不加分隔符,则会在应用目录下建立 DocumentsgameBrain.dat 文件,而不是 Documents 文件夹下建立 gameBrain.dat 。之所以模拟器可以而实机不可以是因为实机的读写权限控制比较严格导致的。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/224538

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX