IOS coredata基础

coredata是OC语言对于SQlite的又一次封装,支持自定义对象添加到关系型数据库的表中。sqlite只支持基础数据类型的添加
下面我们一起通过一个demo来学习一下如何使用coredata
首先新建工程需要勾选上use coredata
这里写图片描述
然后添加实体,也就是要添加的一张表
这里写图片描述
按照下图步骤修改实体名,以及添加实体,也就是表中的字段
这里写图片描述
生成实体,也就是生成表
这里写图片描述
编译调试,如果报错删除下图对应代码
这里写图片描述
这里写图片描述
好了,准备工作完成,接下来我们就可以使用coredata了。还是使用增删改查功能。
首先导入需要的头文件

#import "Person+CoreDataProperties.h"
#import "AppDelegate.h"
case 0:{//增加数据
            Person *p = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:app.persistentContainer.viewContext];
            p.name = @"李四";
            p.age = 32;

            Person *p1 = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:app.persistentContainer.viewContext];
            p1.name = @"李san";
            p1.age = 11;

            Person *p2 = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:app.persistentContainer.viewContext];
            p2.name = @"旺旺";
            p2.age = 21;

            [app saveContext];

        }

            break;
        case 1://删除
        {
            NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
            NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];

            for (Person *p in persons) {
//                if ([p.name isEqualToString:@"李san"]) {
                    [app.persistentContainer.viewContext deleteObject:p];

                    [app saveContext];
//                }
            }

        }

            break;
      case 2://修改
        {
            NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
            NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];

            for (Person *p in persons) {

                if ([p.name isEqualToString:@"李四"]) {
                    p.name = @"王五";
                    p.age = 88;

                    [app saveContext];

                }

            }

        }
            break;
        case 3://查询
        {
            NSFetchRequest *request = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
            NSArray *persons = [app.persistentContainer.viewContext executeFetchRequest:request error:nil];

            for (Person *p in persons) {
                NSLog(@"%@ %d %@",p.name,p.age,p.objectID);
            }

        }

            break;
    }

下面我们来测试一下coredata使用情况
点击添加,再点击查询,结果如下:
这里写图片描述
然后点击删除,在查询
这里写图片描述
然后点击修改,在查询
这里写图片描述
完全符合预期。可以看到coredata可以正常使用

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值