PrideChung
2013-04-05 18:32:01 +08:00
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只会让你更加糊涂。