Der*_*gan 4 iphone core-data objective-c ios
人们可以举例说明为什么他们会在应用程序中使用coreData吗?
我问这个是因为大多数应用程序只是中央服务器的客户端,其中某种API可以为您提供所需的信息.
在我的情况下,我正在为具有API的Web应用程序编写时间表应用程序,如果在核心数据(Sqlite)中复制我的服务器上的数据结构有任何价值,我正在辩论
例如
项目有很多时间表员工有很多时间表
在我看来,我可以在每次调用项目列表或现有时间表时连接到API.
我意识到某种离线模式你可以在本地存储在核心数据中,但是这会产生更多问题,因为当你再次获得连接时,将这些数据同步回Web服务器时遇到了很大的问题.例如,选择用于a的项目时间表不再存在.
任何有经验的开发人员都可以了解核心数据何时是最佳实践方法的经验?
编辑
我当然意识到存储本地持久性是有价值的,但用户默认值的关键值似乎涵盖了我能想到的大多数应用程序.
您不应该将CoreData简单地视为SQLite数据库.它不仅仅是一个SQLite数据库.当然,SQLite是一个选项,但也有其他选项,例如内存以及iOS5中的大量自定义数据存储.CoreData的最大好处显然是持久性.但是,即使您使用的是内存中的数据存储,您也可以获得结构良好的对象图的好处,并且所有关于将信息从信息存储中取出或将信息放入数据存储的繁重工作都由CoreData处理你,没有必要关心支持数据存储的内容.当然,今天你不太关心持久性,所以你可以使用内存数据存储.如果明天,或在一个月或一年内,您决定添加一个真正受益于持久性的功能会发生什么?使用CoreData,您只需更改或添加持久性数据存储,并且所有用于获取信息的方法都保持不变.与您尝试直接访问SQLite或其他数据存储相比,这种添加的开销很小.恕我直言,这是最大的好处:抽象.而且,从本质上讲,抽象是OOP背后最强大的东西之一.当然,为内存存储构建数据模型可能会对您的应用程序造成过大的影响,具体取决于应用程序的相关程度.但是,作为旁注,您可能需要考虑更快的速度:每次要执行某些操作时从Web服务请求信息,或者请求信息一次,将其存储在内存中,并根据存储的值执行操作会议剩余时间.内存数据存储不会持续超出该特定会话.
此外,使用CoreData,您还可以获得许多其他强大功能,如保存,获取和撤消重做.
| 归档时间: |
|
| 查看次数: |
1039 次 |
| 最近记录: |