前言:

   学习了Sqlite数据之后认真思考了一下,对于已经习惯使用orm数据库的开发者或者对sql语句小白的开发者来说该如何做好数据库开发呢?这个上网搜了一下?看来总李多虑了!apple 提供了一种数据方式,它就是今天的主角:CoreData!我们一起来探究它是否能够满足我们项目开发的需要呢?

CoreData介绍:

   Core Date是ios3.0后引入的数据持久化解决方案,它是是苹果官方推荐使用的,不需要借助第三方框架。Core Date实际上是对SQLite的封装,提供了更高级的持久化方式。在对数据库操作时,不需要使用sql语句,也就意味着即使不懂sql语句,也可以操作数据库中的数据。

CoreData优点:

    Core Data实际上是将数据库的创建、表的创建、对象和表的转换等操作封装起来,极大的简化了我们的操作。Core Date与SQLite相比较,SQLite比较原始,操作比较复杂,使用的是C的函数对数据库进行操作,但是SQLite可控性更强,并且能够跨平台。

CoreData缺点:

      存储性能一般,默认建立的表没有主键,效率低,复杂的查询更是不敢想像。CoreData 对批量数据的处理执行的不太好,查资料好像说IOS8推出了批量处理的一些方式。对于多线程的支持也不太好,我是xcode 7上开发的每一个entity都要生成4个类,打个比方一个项目中要建10个表那就要维护40个类,你说累不累?

怎么使用CoreData?

   第一步:在项目中引入CoreData.framework

IOS数据存储之CoreData使用优缺点

    第二步:创建xxxx.xcdatamodeld

IOS数据存储之CoreData使用优缺点

     第三步:模型对象的实体

IOS数据存储之CoreData使用优缺点

 

接下来就是具体实现:具体实现之前先来认识如下几个对象

(1)NSManagedObjectModel(被管理的对象模型)

           相当于实体,不过它包含 了实体间的关系

  (2)NSManagedObjectContext(被管理的对象上下文)

         操作实际内容

        作用:插入数据  查询  更新  删除

 (3)NSPersistentStoreCoordinator(持久化存储助理)

          相当于数据库的连接器

   (4)NSFetchRequest(获取数据的请求)    

        相当于查询语句

   (5)NSPredicate(相当于查询条件)

   (6)NSEntityDescription(实体结构)

为了方便实现,本文整理一个数据管理类来测试CoreData:CoreDataManager

CoreDataManager.h

#import <Foundation/Foundation.h>
#import <CoreData/CoreData.h>

@interface CoreDataManager : NSObject<NSCopying>

@property(strong,nonatomic,readonly)NSManagedObjectModel* managedObjectModel;//管理数据模型

@property(strong,nonatomic,readonly)NSManagedObjectContext* managedObjectContext;//管理数据内容

@property(strong,nonatomic,readonly)NSPersistentStoreCoordinator* persistentStoreCoordinator;//持久化数据助理

//创建数据库管理者单例
+(instancetype)shareManager;

//插入数据
-(void)insertData:(NSString*)tempName;

//删除数据
-(void)deleteData;

//删除数据
-(void)deleteData:(NSString*)tempName;

//查询数据
-(void)queryData;

//根据条件查询
-(void)queryData:(NSString*)tempName;

//更新数据
-(void)updateData:(NSString*)tempName;

@end
View Code

相关文章:

  • 2022-12-23
  • 2022-01-14
  • 2022-12-23
猜你喜欢
  • 2021-05-29
  • 2021-12-16
  • 2022-12-23
  • 2022-02-11
  • 2022-01-20
相关资源
相似解决方案