我该使用Core Data吗?

9

我正在开发一个iPhone应用程序,它从Web服务获取所有数据。我以JSON格式接收信息,并经常调用Web服务以获取数据。我的问题是,我是否应该使用核心数据(Core Data)?目前,我只是向Web服务发送请求并使用所需的信息,在需要时进行数据调用。但是,我无法确定是否应该将数据放入核心数据,因为我无法想象不断保存信息到核心数据实际上是从服务器复制数据库到手机上。这似乎对性能来说不合理或不明智。难道我最终不会在核心数据数据库中耗尽空间或在设备上使用太多空间吗?也许我没有完全掌握这个概念。

7个回答

6
依据您的要求,我认为没有必要使用Core Data。因为您需要从web service获取新的数据,而不是每次都使用本地数据。您的应用程序是一个Web应用程序,而不是本机应用程序。最好通过使用高效的数据对象来加快通信速度(您已经在使用JSON,这很好)。在我看来,没有必要使用CoreData。这些链接支持我的观点:
为什么要使用Core Data
Core Data功能概述

我也是这么想的。我正在开发的应用程序只是网站本身的客户端版本。在有人提到它之前,甚至不会考虑核心数据。 - Marlow Charite

2
在所有的 iPhone 数据持久化方法中,Core Data 是用于非平凡数据存储最好的选择。它可以减少应用程序的内存开销,提高响应速度,并避免编写大量样板代码。根据 RayWenderlich 的教程Objc.io 的教程,你可以得到一个良好的起点。而且,从个人角度来看,使用苹果的类更有利于你的 iOS 应用程序的版本控制。

0

看起来根本不需要使用核心数据,因为你不断地从网络获取信息,并且不需要在应用程序启动之间保留数据。


0

@Marlow Charite,本地数据存储是基于需求的。

如果您有更新数据必须每次加载的需求,例如:新闻频道。在这种情况下,最新数据必须在用户启动应用程序时每次获取,这里不需要离线数据存储。

如果您有更新数据必须根据需要加载的需求,例如:社交网络。在这种情况下,将提要加载一次,然后可以将其存储在本地数据库中,并在用户启动应用程序时从本地加载。为用户实现下拉刷新以加载更多数据。

选择SQLite数据库或核心数据存储以进行离线存储。 此链接将对您有所帮助。


0

我认为使用Core Data没有问题,SQLite可以帮助您保存或缓存请求数据,只需要一个轻量级的SQLite,包括sqite3或FMDB(第三方库),不会影响性能。


-1

是的,您可以使用核心数据(Core Data),但是使用核心数据还存在一些限制,例如您搜索的查询。

否则,您可以使用SQLite数据库,使用SQLite没有任何限制,您可以搜索任何记录。

希望这对您有所帮助。


-1

正如其他一些帖子所说,如果您不断从网络获取数据,则无需进行持久性存储。在RAM和flash之间来回写入会对性能造成很大的影响。

如果您确实需要持久性存储,并且仅为iOS平台开发,则Core Data是一个不错的选择,因为它相当高级并且与iCloud和其他Apple服务集成得很好。否则,如果您还考虑Android和Windows,则建议使用sqlite或FMDB作为sqlite的包装器。这里是我找到的另一个线程:

Core Data VS Sqlite or FMDB....?

希望这可以帮助到您。


谢谢您的输入和链接!看起来每个人都倾向于放弃核心数据,因为我需要从服务器上获取信息。 - Marlow Charite

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接