iOS 开发如果涉及数据和表的持久化,Core Data 比 SQLite 更好吗

 我来答
huanglenzhi
2018-07-04 · 知道合伙人数码行家
huanglenzhi
知道合伙人数码行家
采纳数:117538 获赞数:517193
长期从事计算机组装,维护,网络组建及管理。对计算机硬件、操作系统安装、典型网络设备具有详细认知。

向TA提问 私信TA
展开全部
  这两个东西我都用过,两者都能实现对数据库的操作,功能上需求都能满足。
  先前在公司实习的时候,原先项目中用的是SQLite,感觉操作很直接。如果先前有一点数据库和SQL基础的话,写起来会感觉很亲切,都是一些数据库操作的语句。但是当操作变多之后,语句越来越多,就很烦,代码比较多,看起来也会混乱一些。
  后来新项目中尝试了CoreData,因为苹果一直在推这个东西。CoreData用起来比直接sql语句方便许多,而且很适合进行代码封装、重构。其实后来在用CoreData的时候,参照RestKit的ObjectMapping和CoreData部分对其进行了少量封装,使得CoreData用起来非常方便。例如:添加一条User数据
  User *user = [User object];
  user.name = @"example";
  [objectStore save];
  后来做开发一直都在用CoreData,主要是我觉得用起来太方便了,代码能够精简许多。另外,
  App升级之后数据库字段或者表有更改会导致crash,CoreData的版本管理和数据迁移变得非常有用,手动写sql语句操作还是麻烦一些。
  CoreData不光能操纵SQLite,CoreData和iCloud的结合也很好,如果有这方面需求的话优先考虑CoreData。
  CoreData并不是直接操纵数据库,比如:使用CoreData时不能设置数据库的主键,目前仍需要手动操作。
  效率上其实跑程序时感觉不出来,毕竟手机上的数据不能跟网站的数据和访问量相提并论。

  总的来说,个人比较喜欢用CoreData,因为自己比较熟悉,使用起来也非常方便。
  PS:既然你一直在CoreData,就应该坚持用下去,除非是真的碰到很致命的无法解决问题。中途换掉既有的自己熟悉的东西,费时费力,实际用起来没区别,得不偿失。
转载
zy...3@163.com
2016-09-10 · TA获得超过395个赞
知道小有建树答主
回答量:122
采纳率:0%
帮助的人:91万
展开全部
这两个东西我都用过,两者都能实现对数据库的操作,功能上需求都能满足。
先前在公司实习的时候,原先项目中用的是SQLite,感觉操作很直接。如果先前有一点数据库和SQL基础的话,写起来会感觉很亲切,都是一些数据库操作的语句。但是当操作变多之后,语句越来越多,就很烦,代码比较多,看起来也会混乱一些。
后来新项目中尝试了CoreData,因为苹果一直在推这个东西。CoreData用起来比直接sql语句方便许多,而且很适合进行代码封装、重构。其实后来在用CoreData的时候,参照RestKit的ObjectMapping和CoreData部分对其进行了少量封装,使得CoreData用起来非常方便。例如:添加一条User数据
User *user = [User object];
user.name = @"example";
[objectStore save];
后来做开发一直都在用CoreData,主要是我觉得用起来太方便了,代码能够精简许多。另外,
App升级之后数据库字段或者表有更改会导致crash,CoreData的版本管理和数据迁移变得非常有用,手动写sql语句操作还是麻烦一些。

CoreData不光能操纵SQLite,CoreData和iCloud的结合也很好,如果有这方面需求的话优先考虑CoreData。

CoreData并不是直接操纵数据库,比如:使用CoreData时不能设置数据库的主键,目前仍需要手动操作。

效率上其实跑程序时感觉不出来,毕竟手机上的数据不能跟网站的数据和访问量相提并论。

总的来说,个人比较喜欢用CoreData,因为自己比较熟悉,使用起来也非常方便。
PS:既然你一直在CoreData,就应该坚持用下去,除非是真的碰到很致命的无法解决问题。中途换掉既有的自己熟悉的东西,费时费力,实际用起来没区别,得不偿失。
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式