美文网首页
iOS Core Data简介

iOS Core Data简介

作者: BetterComingDay | 来源:发表于2017-08-08 10:21 被阅读16次

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

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

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

    CoreData中的核心对象

    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简介

          本文链接:https://www.haomeiwen.com/subject/zuxtrxtx.html