• 请不要在回答技术问题时复制粘贴 AI 生成的内容
ldehai
V2EX  ›  程序员

做个小调查, iOS 开发本地持久化数据你是喜欢用 CoreData 还是直接 sqlite

  •  1
     
  •   ldehai ·
    ldehai · Sep 1, 2015 · 9083 views
    This topic created in 4081 days ago, the information mentioned may be changed or developed.
    Supplement 1  ·  Sep 1, 2015
    汇总一下各位的回复:
    用的最多的还是 FMDB ;有部分兄弟已经采用或正准备采用 realm 。

    FMDB is a Cocoa / Objective-C wrapper around SQLite ( https://github.com/ccgus/fmdb )
    Realm is not an ORM on top of SQLite. Instead it uses its own persistence engine, built for simplicity (& speed )( https://realm.io/).
    35 replies  •  2016-10-25 20:29:43 +08:00
    huanglexus
    huanglexus
    Sep 1, 2015❤️1
    1
    键值存储的 sqlite
    hilenlai
    hilenlai
    Sep 1, 2015❤️1
    2
    喜欢用 FMDB 或 LevelDB
    ibremn
    ibremn
    Sep 1, 2015❤️1
    3
    FMDB , LevelDB , Realm 。
    苹果在最新的 News.app 里都用的是 FMDB 这该怎么说好呢。。
    ldehai
    ldehai
    OP
    Sep 1, 2015
    4
    @hilenlai @ibremn 我也是用 FMDB ,一个是要写 sql ,一个是 ORM 。但是写 sql 感觉好烦,好多表跟后台数据库差不多,总觉得在做重复的工作。
    rannie
    rannie
    Sep 1, 2015❤️1
    5
    如果再做的话, FMDB 吧,感觉 CoreData 有些问题还是挺烦人的。。
    hilenlai
    hilenlai
    Sep 1, 2015❤️1
    6
    @ldehai 用 FMDB 的把 JSON 存字符串,取出来就相当于 JSON 字符串了,再进行解析撒。之前也试过写 ORM ,太复杂了。 不过还是看业务把,怎么方便怎么来
    blacklee
    blacklee
    Sep 1, 2015❤️1
    7
    用过一次 CoreData ,在上线之前遇到完全无法解决的问题,然后又把整个数据存储模块全部用 FMDB 重写了。
    但是看一些大厂用的还是 CoreData ,还是自己的功力不够,驾驭不了。而不是 CoreData 不好。
    ldehai
    ldehai
    OP
    Sep 1, 2015
    8
    @hilenlai 这个方法不错,省得客户端的数据库太复杂,表操作的代码(插入、更新、查询)就要写一堆。
    不过有些数据要在客户端做统计,感觉还是用 sql 方便。所有比较纠结,没有最完美的方案。
    SeanGeek
    SeanGeek
    Sep 1, 2015❤️1
    9
    FMDB
    ldp940622
    ldp940622
    Sep 1, 2015❤️1
    10
    给公司做的项目用的 CoreData,之后我再也不想用它了,可能是我功力还不够..
    hyzjshwo
    hyzjshwo
    Sep 1, 2015❤️1
    11
    从 CoreData 迁移到 Sqlite 了,用的 wrapper 是 FMDB 。 CoreData 坑多,但也许我没吃透,问题都能解决只是还是 Sqlite 来的直接。
    JohnShaw
    JohnShaw
    Sep 1, 2015❤️1
    12
    FMDB , CoreData 根本不好用,个人在玩 Realm 。
    lawder
    lawder
    Sep 1, 2015❤️1
    13
    刚接触 Realm ,感觉还不错,以后会试试它。
    chisj
    chisj
    Sep 1, 2015❤️1
    14
    TMCache 。
    zenghaojim33
    zenghaojim33
    Sep 1, 2015❤️1
    15
    Realm
    ldehai
    ldehai
    OP
    Sep 1, 2015
    16
    @JohnShaw
    @lawder
    @zenghaojim33
    看了 Realm ,比 CoreData 要简单
    PhanKiap
    PhanKiap
    Sep 1, 2015❤️1
    17
    好吧就我一个用 NSARCHIVE
    siroccoicode
    siroccoicode
    Sep 1, 2015❤️1
    18
    看用途,比较复杂的数据结构我会去用 FMDB ,一般的数据会使用 NSUserDefault 封装出的 Key-Value 存储。
    izon90
    izon90
    Sep 1, 2015 via iPhone
    19
    coredata 和 ream 都用过,唯独没用过 sqlite
    damngood
    damngood
    Sep 1, 2015 via iPhone
    20
    使用 realm 不知道对 binary size 有多大影响. 有空测试一个
    damngood
    damngood
    Sep 1, 2015 via iPhone
    21
    realm 有个缺点是暂时还不支持全文搜索
    knightlhs
    knightlhs
    Sep 1, 2015
    22
    搞明白 CoreData 还不如直接 FMDB 来的快 太繁琐了
    iEason
    iEason
    Sep 1, 2015
    23
    fmdb
    oimotis
    oimotis
    Sep 1, 2015 via iPhone
    24
    FMDB
    mazingyu
    mazingyu
    Sep 1, 2015
    25
    Realm
    2015813
    2015813
    Sep 1, 2015 via Android
    26
    从优秀案例来看,都是用 sqlite 做出来的居多。供楼主参考。
    Obelly
    Obelly
    Sep 1, 2015
    27
    realm 的问题是线程安全问题,一不留神就掉坑里。
    zsk425
    zsk425
    Sep 2, 2015
    28
    我在项目中用的是 Core Data , MagicalRecord 大大简化了操作,另外页面刷新主要依赖 NSFetchedResultsController 。没有使用过 Realm ,准备去了解一下。
    ibremn
    ibremn
    Sep 20, 2015
    29
    #3 楼的时候,我提到了 Realm ,但是之前并没有在生产环境用过。。
    最近仔细调研了一下 Realm ,强烈不推荐使用:
    1. Realm 的核心是叫做 realm-core ,是一个 C++ 写的 binary 库,并不开源,而且有计划未来要收费。
    2. iOS 自带的 SQLite 版本比较旧,官网最新的 SQLite 相对于系统自带的库性能提升了非常多,我拿 Realm 提供的性能测试工程在真机上测试, Realm 在读写性能上都要差于 SQLite/FMDB 。
    3. Realm 目前还不够稳定,并且有很多坑,比如不支持 NULL 字段, id 不能自增等等。
    ldehai
    ldehai
    OP
    Sep 21, 2015
    30
    @ibremn 是的,我在摸索使用的时候发现 id 不能自增,用起来挺费事的。
    fhefh
    fhefh
    Feb 26, 2016
    31
    mark~
    vimffs
    vimffs
    Oct 24, 2016
    32
    realm-core 上个月开源了,怎么看? https://github.com/realm/realm-core
    ldehai
    ldehai
    OP
    Oct 24, 2016
    33
    @vimffs 新写的 app 用到了 realm-swift 版本,还行,就是增加字段还得迁移数据,有点麻烦
    finalshot
    finalshot
    Oct 25, 2016
    34
    @ldehai Swift 3.0 吗?动态库还是源码引入?
    ldehai
    ldehai
    OP
    Oct 25, 2016
    35
    @finalshot 用的 2.3 , pod
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   3067 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 60ms · UTC 11:37 · PVG 19:37 · LAX 03:37 · JFK 06:37
    ♥ Do have faith in what you're doing.