我应该使用核心数据吗?

时间:2013-12-27 04:53:08

标签: ios objective-c web-services core-data webservice-client

我正在为iPhone开发一个应用程序,它从Web服务获取数据库中的所有数据。我收到JSON格式的信息,并不断调用Web服务来获取数据。我的问题是我应该使用核心数据吗?现在我只是向Web服务请求使用我需要的信息,并在需要时调用数据。但是我应该将数据放入核心数据中,因为我无法确定它是否有帮助甚至是有意义的。由于服务器上有数千行数据,我无法想象不断将信息保存到核心数据中,实际上是将数据库从服务器复制到手机上。这似乎没有意义,也不是表现明智的好主意。难道我不会在核心数据库中耗尽空间或者在设备上占用太多空间吗?也许我没有完全理解这个概念。

7 个答案:

答案 0 :(得分:5)

在我看来,根据您的要求,没有使用Core数据。当您询问Web服务时,每次需要新数据时。您的应用程序是Web应用程序,而不是本机应用程序。如何通过使用高效的数据对象加快沟通速度(您已经在使用JSON,这很好。)。根据我不需要CoreData。以下是支持我观点的链接:

Why Core Data
Core data features overview

答案 1 :(得分:2)

在iPhone上保留数据的所有方法中,Core Data是用于非平凡数据存储的最佳方法。它可以减少应用程序的内存开销,提高响应速度,并使您免于编写大量样板代码。 根据{{​​3}}和Tutorial of RayWenderlich,您可以获得良好的开端。 个人而言,使用Apple的类更适合iOS应用程序的版本控制。

答案 2 :(得分:0)

似乎根本不需要使用核心数据,因为您不断从网络上获取信息,并且您不需要在应用启动之间保持数据。

答案 3 :(得分:0)

@Marlow Charite在本地存储数据是基于要求的。

如果您有更新数据的要求,则必须每次都为ex:NewsChannel加载。在此要求中,每当用户启动应用程序时,必须每次都获取最新数据,此处不需要离线数据存储。

如果您有更新数据的要求必须在ex:Social Network需要时加载。在此需求中加载一次,然后您可以存储在本地数据库中,并在用户启动应用程序时从本地加载。实现拉动以刷新用户以加载更多数据。

为离线存储选择sqlite db或核心数据存储。 This link will help you.

答案 4 :(得分:0)

我认为使用Core数据没问题,sqlite可以帮你保存或缓存请求数据,只需轻量级sqlite,包括sqite3或FMDB(第三方库),不影响性能。

答案 5 :(得分:-1)

是的,您可以使用核心数据,但使用核心数据(例如您搜索的查询)会有一些限制。

否则你可以使用sqlite数据库,使用它没有任何限制,你可以用sqlite搜索任何记录..

希望它会有所帮助。

答案 6 :(得分:-1)

正如其他一些海报所说,如果你不断从网上获取数据,那么就没有必要放入持久存储。在RAM和闪存之间来回写入是一个很大的性能影响。

如果您确实需要持久存储,并且专门为iOS平台开发,那么Core Data是一个很好的方式,因为它相当高水平并且与iCloud和其他Apple服务很好地集成。否则,如果您正在考虑Android和Windows,我建议使用sqlite或FMDB作为sqlite的包装器。这是我发现的另一个主题:

Core Data VS Sqlite or FMDB....?

希望这有帮助。