coreData的简单使用

一、配置上下文时主要类和方法:

NSPersistentStoreCoordinator     持久化调度器: 


- (NSPersistentStore *)addPersistentStoreWithType:(NSString *)storeType configuration:(NSString *)configuration URL:(NSURL *)storeURL options:(NSDictionary *)options error:(NSError **)error;


NSManagedObjectModel              xcdatamodelld模型文件

+ (NSManagedObjectModel *)mergedModelFromBundles:(NSArray *)bundles; 


NSManagedObject                     实例类

setvalue:forkey valueForKey:

NSManagedObjectContext     正在被管理的数据(上下文)

    //初始化一个persistentStoreCoordinator
    NSPersistentStoreCoordinator *coordinatorStore = [[NSPersistentStoreCoordinator alloc]initWithManagedObjectModel:[NSManagedObjectModel mergedModelFromBundles:nil]];
    
    //为persistentstorecoordinator添加数据库文件
    NSString *path = [NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES) lastObject];
    
    NSString *sqlitePath = [path stringByAppendingPathComponent:@"people.sqlite"];
    
    NSError *error = nil;
    
    NSPersistentStore *store = [coordinatorStore addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:sqlitePath] options:nil error:&error];
    
    if (store == nil) {
        NSLog(@"11111111111%@",error);
    }
    
  //alloc一个上下文并设置其persistentstorecoordinator
    _context = [[NSManagedObjectContext alloc]init];
    _context.persistentStoreCoordinator = coordinatorStore;

二、使用coreData的一般步骤:

1、new一个coredata文件,添加实例

2、创建每个实例的实例类

3、配置上下文presistentstorecoordinator

4、进行增、查、删操作


三、增、查、删操作

1、增

    //描述一个实例对象,并插入
    People *peopleA = [NSEntityDescription insertNewObjectForEntityForName:@"People" inManagedObjectContext:_context];
    peopleA.name = @"zhangshan";
    peopleA.age = [NSNumber numberWithInt:17];
    
    NSError *error = nil;
    
    //保存上下文
    BOOL save = [_context save:&error];
    
    if (!save) {
        NSLog(@"======%@",error);
    }

2、查、删

删除操作需要先查询

//创建获取一个查询请求
    NSFetchRequest *requst = [NSFetchRequest fetchRequestWithEntityName:@"People"];
    //配置请求,可以使用谓词
    //requst.predicate =
    
    NSArray *sort = [_context executeFetchRequest:requst error:nil];
    
    //遍历结果进行删除操作
    for (NSManagedObject *obj in sort) {
        
        [_context deleteObject:obj];
      
    }
    //保存上下文
    [_context save:nil];


四、coreData中常用类


NSFetchRequest 查询请求  

fetchRequestWithEntityName:


NSEntityDescription实例的描述

+ (id)insertNewObjectForEntityForName:(NSString *)entityName inManagedObjectContext:(NSManagedObjectContext *)context;






评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值