IOS开发:CoreData的应用

CoreData 最简单的一个数据插入操作:

1 先创建一个工程,注意要勾选 Use Core Data 项

2 在“项目名称.xcdatamodeld 项添加一个表"Person",并增加两个字段name,age”

3 选中刚创建好的表,Editor--Create NSManagedObject SubClass...  将刚才创建的表生成为类

4 在Appdelegate.m中引入刚生成的Person,然后编写如下代码,即可做一个简单的数据插入操作

//打印数据库的路径
    NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);
    
    //创建实体描述 (1 实体类,2临时存储的上下文)
    NSEntityDescription * description = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
    
    //创建Person对象(1 实体描述  2临时存储的上下文)
    Person * person = [[Person alloc]initWithEntity:description insertIntoManagedObjectContext:self.managedObjectContext];
    
    //实体对象赋值
    person.name = @"张三";
    person.age = @20;
    
    //一定要记着保存
    [self.managedObjectContext save:nil];


fetch 请求数据

//********* fetch **********
    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
    [fetchRequest setEntity:entity];
    // Specify criteria for filtering which objects to fetch
    //谓词 做条件过滤  不是必须项
//    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"classesShip == %@", self.currentClasses];
//    [fetchRequest setPredicate:predicate];
    // Specify how the fetched objects should be sorted
    //排序方式  不是必须项 这里的key按某个字段排序这里是按age排序 最后YES为升序 NO为降序
//    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"age"  ascending:YES];
//    [fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortDescriptor, nil]];
    
    NSError *error = nil;
    //发送请求并返回数据
    NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
    if (fetchedObjects == nil) {
        
    }else{
        Person * person1 = fetchedObjects[0];
        NSLog(@"%@,%@",person1.name,person1.age);
        
        //修改
        person1.name = @"李四";
        //保存
        [self.managedObjectContext save:nil];
        
        //删除
        [self.managedObjectContext deleteObject:fetchedObjects[0]];
        //保存
        [self.managedObjectContext save:nil];
    }



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值