我正在开发一个iPhone应用程序,它从Web服务获取所有数据。我以JSON格式接收信息,并经常调用Web服务以获取数据。我的问题是,我是否应该使用核心数据(Core Data)?目前,我只是向Web服务发送请求并使用所需的信息,在需要时进行数据调用。但是,我无法确定是否应该将数据放入核心数据,因为我无法想象不断保存信息到核心数据实际上是从服务器复制数据库到手机上。这似乎对性能来说不合理或不明智。难道我最终不会在核心数据数据库中耗尽空间或在设备上使用太多空间吗?也许我没有完全掌握这个概念。
我正在开发一个iPhone应用程序,它从Web服务获取所有数据。我以JSON格式接收信息,并经常调用Web服务以获取数据。我的问题是,我是否应该使用核心数据(Core Data)?目前,我只是向Web服务发送请求并使用所需的信息,在需要时进行数据调用。但是,我无法确定是否应该将数据放入核心数据,因为我无法想象不断保存信息到核心数据实际上是从服务器复制数据库到手机上。这似乎对性能来说不合理或不明智。难道我最终不会在核心数据数据库中耗尽空间或在设备上使用太多空间吗?也许我没有完全掌握这个概念。
看起来根本不需要使用核心数据,因为你不断地从网络获取信息,并且不需要在应用程序启动之间保留数据。
@Marlow Charite,本地数据存储是基于需求的。
如果您有更新数据必须每次加载的需求,例如:新闻频道。在这种情况下,最新数据必须在用户启动应用程序时每次获取,这里不需要离线数据存储。
如果您有更新数据必须根据需要加载的需求,例如:社交网络。在这种情况下,将提要加载一次,然后可以将其存储在本地数据库中,并在用户启动应用程序时从本地加载。为用户实现下拉刷新以加载更多数据。
选择SQLite数据库或核心数据存储以进行离线存储。 此链接将对您有所帮助。
我认为使用Core Data没有问题,SQLite可以帮助您保存或缓存请求数据,只需要一个轻量级的SQLite,包括sqite3或FMDB(第三方库),不会影响性能。
是的,您可以使用核心数据(Core Data),但是使用核心数据还存在一些限制,例如您搜索的查询。
否则,您可以使用SQLite数据库,使用SQLite没有任何限制,您可以搜索任何记录。
希望这对您有所帮助。
正如其他一些帖子所说,如果您不断从网络获取数据,则无需进行持久性存储。在RAM和flash之间来回写入会对性能造成很大的影响。
如果您确实需要持久性存储,并且仅为iOS平台开发,则Core Data是一个不错的选择,因为它相当高级并且与iCloud和其他Apple服务集成得很好。否则,如果您还考虑Android和Windows,则建议使用sqlite或FMDB作为sqlite的包装器。这里是我找到的另一个线程:
Core Data VS Sqlite or FMDB....?
希望这可以帮助到您。