文章标题

//mergedModelFromBundles 传一个 nil, 默认在 mainbundle 里面查找相应的 coredata 模型文件
NSManagedObjectModel *model = [NSManagedObjectModel mergedModelFromBundles:nil];

//创建协调者     (coreData 数据模型\本地数据文件)
//初始化时指定 coreData 的数据模型
NSPersistentStoreCoordinator *coordinator = [[NSPersistentStoreCoordinator alloc] initWithManagedObjectModel:model];
NSString *path = [NSString stringWithFormat:@"%@/data.db",NSHomeDirectory()];

NSLog(@"%@",path);
//把 coreData 数据文件和本地模型文件关联
[coordinator addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:path] options:nil error:nil];
//创建上下文对象,用于操作数据
NSManagedObjectContext *context = [[NSManagedObjectContext alloc] init];
//设置属性,指定协调者
context.persistentStoreCoordinator = coordinator;

/*********************通过 coreData 机制操作数据********************/
//添加数据
//创建一个数据对象,通过NSEntityDescription 调用insertNewObjectForEntityForName 创建
//参数一::实体名字,与 coreData 模型文件中的实体名字一致
//参数二:上下文对象
Student *stu = [NSEntityDescription insertNewObjectForEntityForName:@"Student" inManagedObjectContext:context];
//对数据模型设置各种属性
stu.name = @"陈冠希";
stu.number = @5;
stu.age = @35;
//本地化,内存---->本地文件(ROM)
//[context save:nil];
//查找数据
//查找条件类
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
//全部数据的查找   指定实体

// [fetchRequest setEntity:(NSEntityDescription *)[NSEntityDescription insertNewObjectForEntityForName:@”Student” inManagedObjectContext:context]];
fetchRequest.entity = [NSEntityDescription entityForName:@”Student” inManagedObjectContext:context];

//增加一个查询的谓词
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name like '刘德华'"];
[fetchRequest setPredicate:predicate];

//执行数据检索
NSArray *array = [context executeFetchRequest:fetchRequest error:nil];
for (Student *item in array) {
    NSLog(@"%@         %@         %@",item.name,item.number,item.age);
}
//修改数据
        //查找到待修改的数据
Student *stur = [array firstObject];
        //重新赋值
stur.age = @120;
        //由内存存放到硬盘
[context save:nil];
//删除数据
    //查找数据
Student *str = [array firstObject];
    //删除数据
[context deleteObject:str];
    //同步磁盘
[context save:nil];

还有第三方库的使用

//1.添加数据
//创建对象
Student *stu = [Student MR_createEntity];
//设置属性
stu.name = @”佛纳甘”;
stu.age = @18;
stu.number = @12457116;
//存储到本地
// [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

//读取数据

// Student *stud = [Student MR_findFirst];
// NSLog(@”%@ %@”,stud.name,stud.age);
//取出所有元素
// NSArray *array = [Student MR_findAll];
// for (Student *item in array) {
// NSLog(@”%@ %@”,item.name,item.age);
// }
//根据指定条件查找数据
NSArray *myArray = [Student MR_findByAttribute:@”name” withValue:@”全智贤”];
for (Student *item in myArray) {
NSLog(@”%@ %@”,item.name,item.age);
}
//更改元素
// for (Student *item in myArray) {
// item.age = @35;
// [[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];
// }
//删除数据
[[myArray firstObject] MR_deleteEntity];
[[NSManagedObjectContext MR_defaultContext] MR_saveToPersistentStoreAndWait];

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值