我想知道指南的用途:
1 - 我多久可以从NSUserDefaults中读取
2 - 我可以在NSUserDefaults中合理存储多少数据
显然,NSUserDefaults可以使用多少是有限的,但我无法确定什么是合理的,什么不是.
其中一些例子:
如果我的游戏有一个选项让计算机成为其中一个玩家,我将使用NSUserDefaults来保存该布尔值.这很清楚.但是,每当我想知道计算机是否是一个播放器或我是否应该使用实例变量时,在我的游戏中访问NSUserDefaults也是合理的吗?假设我需要每秒检查一次布尔值.答案是否相同是100毫秒而不是?每10秒钟一次呢?
如果我的游戏有50个移动物体,并且我希望在用户退出应用程序时存储它们的位置和速度,那么NSUserDefaults是一个存储该数据的合理位置吗?20个移动物体怎么样?200怎么样?
我有一个OSX的沙盒应用程序,我保存了一些数据NSUserDefaults,一切都很好,直到我从~Library/Preferences /目录中删除了plist文件.
我认为应用程序应该重新开始,但事实并非如此.当我调试时,我看到了
[[NSUserDefaults standardUserDefaults] synchronize] 方法返回 YES
并且数据保存在类中,但是当我重新启动应用程序时,用户默认值为空.
即使我将这些plist文件从备份复制到Preferences目录,该应用程序也看不到它.
当然plist应该保存在Containers /我的应用程序包id/Data/Library/Preferences中,当我将plist文件从备份复制到该目录时,应用程序可以看到它,但是当我删除时为什么不重新创建该文件它?
有人知道为什么吗?