0

我为 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 为下一个版本再次完成所有数据库工作。

无论如何,这是至关重要的,需要解决。

提前感谢任何帮助。

4

1 回答 1

0

正如我对您的建议,请介绍 Sqlite 数据库集成,因为当数据存储的大小较短时,它比 Sqlite 更好,但它不能处理大量数据,因此必须使用 Sqlite 或 coredata。

所以我建议使用 Sqlite 数据和 coredata。

于 2012-09-28T11:44:21.967 回答