coredata

coreData 深入理解4 --总结 (线程安全与同步--iOS5 前后对比)

霸气de小男生 提交于 2019-11-27 15:47:54
分类: Base&Inter&Skill iphone 平台 iphone+平台 2014-03-24 15:27 1140人阅读 评论 (1) 收藏 举报 目录 (?) [+] Core Data是iOS中很重要的一个部分,可以理解为基于SQLite(当然也可以是其他的Storage,如In-memory,只是SQLite比较常见)的一个ORM实现,所以有关系数据库的特性,又不用写SQL。顺便吐一下槽,官方说法是使用Core Data能减少50%-70%的代码量,但相信用过的人应该都心里明白,Core Data使用起来还是比较麻烦的,这也是为什么有不少的第三方类库来代替/二次包装Core Data。 稍微复杂的应用就有可能出现同时处理多份数据的情况,这就需要用到多线程Core Data。在 iOS 5之前,官方推荐的是使用「Thread Confinement」,就是每个线程使用独立的MOC(managed object context),然后共享一个PSC(persistent store coordinator)。同时在线程之间传递数据时,要传递objectID,而不是object,因为前者是线程安全的,后者不是。 如果A线程里,对PSC执行了CUD(create, update, delete)操作,其他线程如何感知呢?这就需要通过监听事件来实现。比如在线程A中监听

iOS面试题

淺唱寂寞╮ 提交于 2019-11-27 09:37:51
文章转载自: http://www.pythonheidong.com/blog/article/3327/ iOS面试题 1. Difference between shallow copy and deep copy? 浅复制和深复制的区别? 浅层复制:指向对象的指针,而不复制引用对象本身。深层复制:复制引用对象本身。 2.What is advantage of categories? What is difference between implementing a category and inheritance? 类别的作用?继承和类别在实现中有何区别? category可以在不熟悉,不改变原来代码的情况下往里面添加新的方法,只能添加,不能删除修改。并且如果类别和原来类中的方法名称冲突,则类别将覆盖原来的方法,因为类别具有更高的优先级。 类别主要有3个作用: (1)将类的实现分散到多个不同文件或多个不同框架中。 (2)创建对私有方法的前向引用。 (3)向对象添加非正式协议。 继承可以添加,修改或删除方法,并且可以增加属性。 3.Difference between categories and extensions? 类别和类扩展的区别。 categories和extensions的不同在于后者可以添加属性。另外后者添加的方法是必须要实现的。