Coredata

1、获取程序中的appdelegate对象,以便使用其coredata相关的属性和方法

    AppDelegate *_app = [UIApplication sharedApplication].delegate;

2、coredata存数据

    //初始化实体,注意@“”里直接放实体类名字

    My *my = [NSEntityDescription insertNewObjectForEntityForName:@"Myimanager" inManagedObjectContext:_app.managedObjectContext];

    my.name = @"小名";

    [_app saveContext];//保存

    NSLog(@"%@",NSHomeDirectory());

3、查询:只有/*1、2、3*/句时,代表查询所有,/*5、6*/结合,设置查询条件

    /*1*/NSFetchRequest *request = [[NSFetchRequest alloc]init];//创建空语句

    /*2*/NSEntityDescription *en = [NSEntityDescription entityForName:@"My" inManagedObjectContext:_app.managedObjectContext];//创建要查询的实体

    /*3*/[request setEntity:en];//创建查询语句

    /*4*/NSPredicate *p = [NSPredicate predicateWithFormat:@"name = %@ ",@"小真"];//查询条件

    /*5*/[request setPredicate:p];//将查询条件放入查询语句

    NSArray *arr= [_app.managedObjectContext executeFetchRequest:request error:nil];//执行查询语句,并且返回查询结果

    //便利数组

    for (My *s in arr) {

        NSLog(@"%@",s.name);

    }

    [_app saveContext];//保存   

//    NSArray *arr1 = [_app.managedObjectContext executeFetchRequest:request error:nil];

//    for (My *s1 in arr1) {

//        NSLog(@"%@",s1.name);

//    }

 4、删除

    NSFetchRequest *f1 =[[NSFetchRequest alloc]init];

    NSEntityDescription *en1 = [NSEntityDescription entityForName:@"My" inManagedObjectContext:_app.managedObjectContext];//创建要查询的实体

    [f1 setEntity:en1];//创建查询语句

    NSPredicate *p1 = [NSPredicate predicateWithFormat:@"name = %@",@"小真"];//查询条件

    [f1 setPredicate:p1];//将查询条件放入查询语句

    NSArray *arr1 = [_app.managedObjectContext executeFetchRequest:f1 error:nil];

    for (My *s1 in arr1) {

        [_app.managedObjectContext delete:s1];

    }

    NSFetchRequest *f2 = [[NSFetchRequest alloc]init];

    [f2 setEntity:en1];

    NSArray *arr3 = [_app.managedObjectContext executeFetchRequest:f2 error:nil];

    NSLog(@"%@",arr3);

 

posted on 2015-11-30 20:26  子嫣然兮  阅读(252)  评论(0编辑  收藏  举报