iOS Core Data简介

这里只是简介,不是教程,仅是写出了自己的一些疑问。
CoreData与SQLite对比

SQLite:
1、基于C接口,需要使用SQL语句,代码繁琐
2、在处理大量数据时,表关系更直观
3、在OC中不是可视化,不易理解

CoreData:
1、可视化,且具有undo/redo能力
2.可以实现多种文件格式:NSSQLiteStoreType、NSBinaryStoreType、NSInMemoryStoreType、NSXMLStoreTyp
3、苹果官方API支持,与iOS结合更紧密

CoreData中的核心对象

iOS Core Data简介_第1张图片
database.png
@property (nonatomic, strong) NSManagedObjectModel *managedObjectMode;
@property (nonatomic, strong) NSManagedObjectContext *managedObjectContext;
@property (nonatomic, strong) NSPersistentStoreCoordinator *persistentStoreCoordinator;

创建managedObjectMode的几种方式

第一种:

在创建后缀为.xcdatamodeld的模型文件后,模型文件在编译期将会被编译为后缀为.momd的文件,存放在.app中,也就是Main Bundle中。在存在多个模型文件时,我们需要通过加载不同的.momd文件,来创建不同的NSManagedObjectModel对象,每个NSManagedObjectModel对应着不同的模型文件。

NSURL *modelURL = [[NSBundle mainBundle] URLForResource:@"DBName" withExtension:@"momd"];
self.managedObjectMode = [[NSManagedObjectModel alloc] initWithContentsOfURL:modelURL];
第二种:
self.managedObjectMode = [NSManagedObjectModel mergedModelFromBundles:nil];

这里的的nil表示连接项目中所有的 .xcodemodel 文件为一个datamodel,这是一个非常好的方法,把多个entity放在各自的xcodemodel文件中分开管理,然后用这个函数连接起来生成一个datamodel,这样就可以对应一个persistentStore

反正增删查改的时候也需要指定实体的名字,所以是不是这两种方法就差不多了,第一种指定了特定的文件,第二种根据实体名字查找文件,
我理解的大概就是酱紫,有大神看到可以给评论,然后我立马更正。

剩下的managedObjectContext、persistentStoreCoordinator;初始化方法大家就百度去吧,哈哈一百度一大把。

你可能感兴趣的:(iOS Core Data简介)