使用core data的经验分享? - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
iOS 开发实用技术导航
NSHipster 中文版
http://nshipster.cn/
cocos2d 开源 2D 游戏引擎
http://www.cocos2d-iphone.org/
CocoaPods
http://cocoapods.org/
Google Analytics for Mobile 统计解决方案
http://code.google.com/mobile/analytics/
WWDC
https://developer.apple.com/wwdc/
Design Guides and Resources
https://developer.apple.com/design/
Transcripts of WWDC sessions
http://asciiwwdc.com
Cocoa with Love
http://cocoawithlove.com/
Cocoa Dev Central
http://cocoadevcentral.com/
NSHipster
http://nshipster.com/
Style Guides
Google Objective-C Style Guide
NYTimes Objective-C Style Guide
Useful Tools and Services
Charles Web Debugging Proxy
Smore
notedit
V2EX    iDev

使用core data的经验分享?

  •  
  •   notedit
    notedit 2013-04-04 18:27:39 +08:00 5187 次点击
    这是一个创建于 4573 天前的主题,其中的信息可能已经有所发展或是发生改变。
    想在现在做的一个项目中加入core data的使用, 但对这个东西不是很了解, 使用过core data的同学可以分享下经验么? 或者一些相关的辅助的类库
    16 条回复    1970-01-01 08:00:00 +08:00
    kukat
        1
    kukat  
       2013-04-04 18:31:58 +08:00   1
    WWDC 2012 Session 214: Core Data Best Practices
    Cwind
        2
    Cwind  
       2013-04-04 18:33:20 +08:00   1
    http://www.raywenderlich.com/tutorials 里面有几节讲这个的
    allenhsu
        3
    allenhsu  
       2013-04-04 19:25:10 +08:00   1
    Core Data 很赞,但是已经不止一个朋友在项目的后续版本迁移到 sqlite 了,相对来说自由度更高,移植也更方便。
    alexrezit
        4
    alexrezit  
       2013-04-04 19:45:14 +08:00   1
    @allenhsu
    表示一直在用 SQLite. Core Data 太复杂了没学会.
    wtl
        5
    wtl  
       2013-04-04 19:53:44 +08:00   1
    用作缓存数据还行 不过也不建议自己捣鼓 用已有的第三方库吧

    但是如果想在一开始就放点数据进去 那太痛苦了 有折腾的功夫程序都写好了 得不偿失

    ----------------------
    @allenhsu 这句"Core Data 很赞" 估计也被coredata摧残过吧
    明显的言不由衷啊 :)
    iYu
        6
    iYu  
       2013-04-04 20:24:41 +08:00   1
    Core Data啊。 使用Core Data的下一步就是想用iCloud。 iCloud最近都被黑出翔了。商土嘈的。 希望iOS7能有重大突破。 有是不的 一是 https://github.com/magicalpanda/MagicalRecord 另外一是 https://github.com/rentzsch/mogenerator

    然後 自己也小小的一

    ## Core Data
    [iOS笔记18](http://iiiyu.com/2013/03/29/learning-ios-notes-eighteen/) Core Data 一

    [iOS笔记19](http://iiiyu.com/2013/04/01/learning-ios-notes-nineteen/) Core Data 二

    [iOS笔记15](http://iiiyu.com/2013/02/22/learning-ios-notes-fifteen/) Mogenerator的初级使用

    希望有所助
    notedit
        7
    notedit  
    OP
       2013-04-04 21:00:41 +08:00
    @iYu 所以你认为core data 不太好用是么
    iYu
        8
    iYu  
       2013-04-04 21:06:27 +08:00
    我有啊。 只是Core Data需要投入去搞定。 而且根你的目具需求看。
    allenhsu
        9
    allenhsu  
       2013-04-04 21:32:03 +08:00
    @wtl 我觉得比较赞的主要是 Core Data 里 Faulting 机制(Lazy Load),用 sqlite 要自己实现这套机制的话会比较麻烦。

    Hi,@iYu
    iYu
        10
    iYu  
       2013-04-04 21:47:38 +08:00
    @allenhsu 好基友 无处不在啊。
    hilenlai
        11
    hilenlai  
       2013-04-04 22:22:46 +08:00   1
    coredata 啊,就是能直接存对象的。仅此而已,语法有点蛋疼~~用了下还阔以!
    vixvix
        12
    vixvix  
       2013-04-05 02:11:28 +08:00   1
    如果是小型应用的话sqlite. 如果一定上coredate的话,建议用这个wrapper: MagicalRecord
    https://github.com/magicalpanda/MagicalRecord
    chisj
        13
    chisj  
       2013-04-05 10:23:13 +08:00   1
    http://blog.csdn.net/jasonblog,清晰易懂,我是从那里学会的。
    一个阿里的iOS工程师写的,好像很年轻,感觉是个潜力股。
    PrideChung
        14
    PrideChung  
       2013-04-05 18:32:01 +08:00   1
    CoreData的学习曲线的确非常陡,另一方面很多程序猿都有Web开发的背景,SQL应该都是了解或者熟悉的,自然会觉得用SQLite会更加方便。我自己用CoreData主要是冲着他的ObjectModel 和 RelationShip 去的,如果自己用SQLite来实现的话需要花不少功夫。

    CoreData比较麻烦的一点是多线程,你需要在每个线程各使用一个MOC,然后在某个MOC更新了之后再通过一些烦到爆的手段来更新其他线程的MOC,官方一个比较旧的ThreadedCoreData demo 是用几个跟MOC有关的 NSNotification 来合并不同MOC的更新,需要写大量无聊的代码。我的建议是如果能确定操作的数据量不大的话,直接在MainQueue上进行CoreData的操作。

    至于MagicalRecord这个库,谨慎使用。虽然有很多很cool的功能,比原生CoreData易用很多,还能帮你处理头疼的多线程问题,但是文档不是十分完备,API经常变,网上找到的教程不少都过时了,做好出了问题要去看框架源码的准备,如果你对CoreData一无所知的话,MagicalRecord只会让你更加糊涂。
    leafduo
        15
    leafduo  
       2013-04-16 15:44:42 +08:00   1
    为啥都觉得 Core Data 很蛋疼,我用得挺好的,跟 Apple 的其他东西结合不错(废话)

    多线程网上有很多讨论了,我没遇到明显的性能问题,所以就都在主线程做的。

    Mogenerator 没用明白,不少功能似乎也不全,现在基本改 model 之后手动去改一下 .h,反正也没多少东西。

    sqlite 要自己序列化、处理关系什么的吧,多麻烦……Core Data 直接塞对象就好了。

    库就用了一个 SSDataKit,节省好多废话。
    franksin
        16
    franksin      2013-06-27 21:28:58 +08:00
    专门来回复下,core data如果看明白文档,的确是比写sql高效而且与tableviewcontroller配合真的可以把纯手写sql拉开几条街。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2698 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 260ms UTC 09:52 PVG 17:52 LAX 02:52 JFK 05:52
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86