很久没用CoreData了,还是初学的时候接触了CoreData,那个时候嫌弃CoreData麻烦。之后一直在用FMDB(SQLite)。顺便用Swift构建,我想是很愉快和享受的一件事情。
什么是CoreData

了解必用的类
1、NSManagedObject:托管对象模型,实体信息
2、NSPersistentStoreCoordinator:数据库存储方式,数据持久化、数据加载、数据缓存
3、NSManagedObjectContext:管理对象的上下文,增、删、改、查进行对象管理
4、NSFetchRequest:表查询,在NSManagedObjectContext里面查询相应的NSManagedObject
小结:NSManagedObject创建model模型,NSPersistentStoreCoordinator从NSManagedObject获取到数据模型,然后选择NSPersistentStore(XML,SQLite,二进制)进行数据持久化。NSManagedObjectContext是作为缓存区管理对象,我们用NSFetchRequest进行查询,便于增、删、改、查操作。
新建工程:PractiseCoreData
1、修改RootController为NavigationController

2、添加TableView ,添加右边的Item-添加,添加Layout

3、添加TableView属性,添加Item事件

4、遵循UITableViewDataSource,UITableViewDelegate,建立model数组,注册cell,实现代理方法

5、在addNameAction添加点击事件,弹出UIAlertController(iOS8),以便于后面添加数据

6、创建一个Model

7、运行工程,可以添加数据,但是没有和CoreData联系在一起,再次运行工程添加的都会被clear
7.1、头文件导入CoreData

7.2、把modelsArr改成NSManagedObject类型

7.3、UIAlertController里面修改并添加保存方法,并且在cellForRowAtIndexPath修改赋值



8、在进入到Controller,加载关闭程序之前添加的Person

9、首先运行工程,并且进行添加;然后再次运行工程,会出现我们“首先”添加的数据

以前觉得好烦人,现在一步一步来感觉还是蛮舒服的。其实现在有很多封装的第三方的CoreData,可以去看看,参考参考。对自己会有提升。
反思:不要去害怕这个东西难懂,越不想去用它,他就会对你产生神秘感。你要揭开它,你或许会产生继续发掘它的兴趣跟动力。
网友评论