V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
machinemxy
V2EX  ›  Swift

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

  •  
  •   machinemxy ·
    machinemxy · 2015-09-29 15:41:13 +08:00 · 4455 次点击
    这是一个创建于 3329 天前的主题,其中的信息可能已经有所发展或是发生改变。

    我的保存代码如下
    ```
    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",但是也没有中断退出。难道说实机无法访问这个用户路径吗?

    1 条回复    2015-09-30 14:23:45 +08:00
    machinemxy
        1
    machinemxy  
    OP
       2015-09-30 14:23:45 +08:00
    自己解决了。"gameBrain.dat"应为"/gameBrain.dat"。如果不加分隔符,则会在应用目录下建立 DocumentsgameBrain.dat 文件,而不是 Documents 文件夹下建立 gameBrain.dat 。之所以模拟器可以而实机不可以是因为实机的读写权限控制比较严格导致的。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2675 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 03:08 · PVG 11:08 · LAX 19:08 · JFK 22:08
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.