machinemxy
V2EX  ›  Swift

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

  •  
  •   machinemxy ·
    machinemxy · Sep 29, 2015 · 5188 views
    This topic created in 3877 days ago, the information mentioned may be changed or developed.

    我的保存代码如下
    ```
    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 replies    2015-09-30 14:23:45 +08:00
    machinemxy
        1
    machinemxy  
    OP
       Sep 30, 2015
    自己解决了。"gameBrain.dat"应为"/gameBrain.dat"。如果不加分隔符,则会在应用目录下建立 DocumentsgameBrain.dat 文件,而不是 Documents 文件夹下建立 gameBrain.dat 。之所以模拟器可以而实机不可以是因为实机的读写权限控制比较严格导致的。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   946 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 30ms · UTC 21:30 · PVG 05:30 · LAX 14:30 · JFK 17:30
    ♥ Do have faith in what you're doing.