我为 iPhone 开发了一个基于服务器的应用程序。但根据客户要求并避免服务器端过载,我需要将数据存储在本地端。它都是文本,通常大小为 2-4 MB。 为此,我使用NSUserDefaults而不是 sqlite 或 CoreData。该应用程序在其开发期间以及开发后测试期间已成功测试了大约 2-3 个月,并且从未在 iphone 3G - iphone 4S 的任何类型的 iphone 设备上显示任何类型的数据存储、更新或删除不一致。
现在实时应用程序中存在不一致问题,当用户让应用程序在屏幕上闲置约 15-20 分钟并且不按主页按钮时,意味着应用程序不在后台。在这种情况下,数据似乎丢失了。但是一旦刷新应用程序,在这种情况下数据会再次出现并且应用程序再次开始正常运行。这里的主要问题是,当我刷新时,我什么都不做,只是从服务器获取新数据,它可能只是一到五条记录,或者什么也没有。然后刷新应用程序,显示所有记录并正常运行。
我已经尝试发现这个问题大约 3 天了,但我的设备(iPhone 4S)上没有发生这种情况。据我所知,旧设备似乎有问题。
以前在测试中,这些都没有发生在旧设备或新设备上。我的问题是——
a)这是我的编码不一致吗?
b) NSUserDefaults 对于实时应用程序的数据库管理是否不可信?
c) 它是与 NSUserDefaults 相关的设备版本特定问题吗?
任何人都面临/面临 NSUserDefaults 的问题?
请建议我可以为此做些什么,或者告诉我必须使用 sqlite 或 CoreData 为下一个版本再次完成所有数据库工作。
无论如何,这是至关重要的,需要解决。
提前感谢任何帮助。