iOSCoreData数据库:

来源:互联网 发布:域名注册查询工具 编辑:程序博客网 时间:2024/06/05 10:20
@property (readonly, strong, nonatomic) NSManagedObjectContext *managedObjectContext;//操作管理器(增删改查)@property (readonly, strong, nonatomic) NSManagedObjectModel *managedObjectModel;//被管理的数据模型@property (readonly, strong, nonatomic) NSPersistentStoreCoordinator *persistentStoreCoordinator;//持久化协助管理器  /**     * 表示要向Person这个表里面插入一条数据     */    /*     参数1:插入的表名     参数2:托管上下文对象(coreData操作管理器)     */    //数据  ->(映射) 对象    Person *per = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];    //设置返回实体对象的属性    per.name = @"老王";    per.age = [NSNumber numberWithInt:11];    per.headImage = [NSData dataWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"1" ofType:@"png"]];    //保存记录    [self.managedObjectContext save:nil];    NSLog(@"%@",NSHomeDirectory());    //查找数据    NSFetchRequest *request = [[NSFetchRequest alloc] init];    //获得表结构实体(把一张表进行实体化)    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];    //设置查询的表结构实体(设置查询的是哪张表)    request.entity = entity;    /*    //设置条件查询(谓语)    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"name = %@",@"老李"];    request.predicate = predicate;     */    //设置升降序排列    //YES代表升序,NO代表降序    NSSortDescriptor *sort = [NSSortDescriptor sortDescriptorWithKey:@"age" ascending:YES];    request.sortDescriptors = @[sort];    //通过操作管理器发起查询请求    //resultArr储存搜寻的结果    NSArray *resultArr = [self.managedObjectContext executeFetchRequest:request error:nil];    for (Person *per in resultArr) {        NSLog(@"per.name = %@ per.age = %@",per.name,per.age);    }    /*    for (Person *per in resultArr) {        NSLog(@"per.name = %@ per.age = %@",per.name,per.age);        //修改数据(更新)        per.name = @"老李";        //保存记录        [self.managedObjectContext save:nil];        //删除        if ([per.age integerValue] == 90) {            [self.managedObjectContext deleteObject:per];            //保存记录            [self.managedObjectContext save:nil];        }    }     */.M中:    NSManagedObjectContext *_context;引入头文件#import "AppDelegate.h"- (void)loadDataFromCoreData{    //coreData查询    AppDelegate *delegate = [UIApplication sharedApplication].delegate;    _context = delegate.managedObjectContext;    NSFetchRequest *request = [[NSFetchRequest alloc]init];    //从哪个实体中查询数据    NSEntityDescription *descrip = [NSEntityDescription entityForName:@"CDGoodsModel" inManagedObjectContext:_context];    //查询规则,where xx = xx    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"cid = %d",_cid];    [request setEntity:descrip];    [request setPredicate:predicate];    NSArray *array = [_context executeFetchRequest:request error:nil];    [_dataArray addObjectsFromArray:array];    [_myTable reloadData];}数据库删除:AppDelegate *delegate = [UIApplication sharedApplication].delegate;        _context = delegate.managedObjectContext;        for (NSManagedObject *obj in _dataArray)        {            [_context deleteObject:obj];        }        [_context save:nil];        [_dataArray removeAllObjects];数据库插入:CDGoodsModel:表名   CDGoodsModel *cdModel = [NSEntityDescription insertNewObjectForEntityForName:@"CDGoodsModel" inManagedObjectContext:_context];            cdModel.imgURL = [NSString stringWithFormat:@"%@",model.imgURL];            cdModel.price = [NSString stringWithFormat:@"%@",model.price];            cdModel.discount = [NSString stringWithFormat:@"%@",model.discount];            cdModel.cid = [NSString stringWithFormat:@"%d",_cid];            NSError *error = nil;            if(![_context save:&error])            {                NSLog(@"coreData保存数据失败,error=%@",error);            }else            {                [_dataArray addObject:cdModel];            }        }        //刷表        [_myTable reloadData];URL 的赋值不可以放到init里

0 0