博客> Core Data 的使用
Core Data 的使用
2019-05-24 16:30 评论:0 阅读:965 SL勿忘
ios Core Data

1.使用 Core Data 新增数据的步骤?

建立实体 Entity
添加 Entity 的属性
使用菜单创建 NSManagedObject 的子类

2.到处数据模型的两个注意点

    确认语言是 OC 的
    生成文件时注意选择分组

3.实体模型的作用?

    类似于开发中的类

4.实体描述 NSEntityDescription 的作用?

    类似于开发中的对象

5.CoreData 中查询使用哪一个单词表示?

    Fetch

6.CoreData 的数据查询需要通过哪一个类实现?

    NSFetchedResultsController

7.在 CoreData 中,通过什么方式监听数据变化?

    设置查询请求控制器的代理并且实现代理方法

8.通过代理监听数据变化的好处是什么?

    其他数据增/删/改的位置只需要处理对数据的操作,而无需关注界面的 UI 处理

9.如果不建立数据模型,能够实例化出持久化容器吗?

    不能

10.要使用 CoreData 需要导入哪一个头文件?

     #import <CoreData> 

11.Xcode 模板生成的 Core Data 代码能够合并多个数据模型吗?

    不能

12.使用哪一个方法,能够将 Main Bundle 中的所有数据模型合并到一个管理对象模型

    [NSManagedObjectModel mergedModelFromBundles:nil];

13.loadPersistentStoresWithCompletionHandler 方法的作用是什么?

    打开/新建/修改

14.loadPersistentStoresWithCompletionHandler 方法是同步还是异步的?

    同步

15.让应用程序挂起的方法

     [[UIApplication sharedApplication] performSelector:@selector(suspend)]; 

16.Core Data 的持久化容器的 getter 方法中,为什么要使用互斥锁?

    Core Data 的核心对象都不是线程安全的,使用互斥锁能够保证数据安全

17.持久化容器的 getter 方法可以使用 dispatch_once 吗?

    不能

18.dispatch_once 是一次性执行的

      如果由于系统原因,第一次没有实例化出持久化容器,后续再也无法创建持久化容器

19.使用 Xcode 8 生成的 Core Data 基础代码,能够在 iOS 9.0 系统上运行吗?

    不能

20.如果重写了只读属性的 getter 方法,系统还提供默认的 _成员变量吗?如何解决?

    使用 `@synthesize` 合成指令,指定只读属性使用的成员变量

21.Core Data Stack 核心对象实例化的步骤

    管理上下文 NSManagedObjectContext

    管理对象模型,合并 mainBundle 中的所有模型 NSManagedObjectModel

    持久化存储调度器,传入管理对象模型 NSPersistentStoreCoordinator

                psc 调用 addPersistentStoreWithType 方法打开/新建/修改数据表

    给管理上下文指定存储调度器,建立管理上下文与底层数据库的通道

                _moc.persistentStoreCoordinator = psc;
收藏
0
sina weixin mail 回到顶部