Swift 3:保存在文件中的数据在模拟器之间切换时丢失 iPhone 5s 和 6s,6s Plus

Swift 3: Data saved in File gets lost on switching between Simulators iPhone 5s and 6s, 6s Plus

我正在使用

将用户注册数据保存在文件中
NSKeyedArchiver.archiveRootObject

在模拟器中选择iPhone 5S,当注册会员登录时,我正在使用

验证用户
NSKeyedUnarchiver.unarchiveObjectWithFile

验证成功,用户可以登录。

但是,如果我切换到 iPhone 6s 或 6S Plus 模拟器,并使用相同的凭据,验证不成功,用户无法登录

我希望在模拟器之间切换不会影响数据存储或检索功能,任何人遇到与 Swift 3 (Xcode 7.3) 类似的问题?

这是预期的行为,而且一直都是这样。不同的模拟器就像不同的物理设备。

如果您有两部手机并且 运行 您的应用程序在一部手机上,如果没有某些数据同步(例如 iCloud),您不会期望两部设备上有相同的数据。模拟器也一样。

这就是它的工作原理。每个模拟设备都有自己的模拟沙箱,用于存储文件。如果您查看 ~/Library/Developer/CoreSimulator/Devices/,您会看到每个模拟设备的条目。