CoreData 封装

来源:互联网 发布:枪林弹雨刷永久枪软件 编辑:程序博客网 时间:2024/04/29 12:30

---------- . h --------------

#import <Foundation/Foundation.h>#import <CoreData/CoreData.h>#import "JiaoModel.h"@interface CoreData : NSObject{    //coreData 操作数据库的核心对象    NSManagedObjectContext *moc;        NSFetchRequest *fr;    }//绑定数组-(NSArray *)getDataArr;//添加数据-(void)AddModel:(JiaoModel *)model;//删除数组-(BOOL)deleteModel:(JiaoModel *)model;//更新数组-(void)UpData;//精确搜索-(NSArray *)SearchData:(NSString *)time;//模糊搜索-(NSArray *)SearchMohu:(NSString *)time;@end


--------- .m -----------

#import "CoreData.h"@implementation CoreData-(id)init{        if (self=[super init]) {                //初始化 moc        [self initMoc];    }    return self;}-(void)initMoc{        //找到路径    NSString *path=[[NSBundle mainBundle] pathForResource:@"JiaoModel" ofType:@"momd"];        //根据路径读取文件    NSManagedObjectModel *model=[[NSManagedObjectModel alloc]initWithContentsOfURL:[NSURL fileURLWithPath:path]];        //建立管理数据模型对象    NSPersistentStoreCoordinator *psc=[[NSPersistentStoreCoordinator alloc]initWithManagedObjectModel:model];        //创建数据库资源路径    NSString *dbpath=[NSHomeDirectory()stringByAppendingString:@"/Documents/JiaoModel.sqlite"];        NSError *error=nil;        //检查数据库建立状态 作用判断    NSPersistentStore *ps=[psc addPersistentStoreWithType:NSSQLiteStoreType configuration:nil URL:[NSURL fileURLWithPath:dbpath] options:nil error:&error];        NSLog(@"%@",dbpath);        if (!ps) {        NSLog(@"创建失败");    }else NSLog(@"创建成功");        //创建管理对象,管理整个数据库 -- 如果用Xcode 7 initWith....type 进行初始化    moc=[[NSManagedObjectContext alloc]init];        //设置管理对象管理的数据库    moc.persistentStoreCoordinator=psc;        //做映射的类和数据库那张表相对应    fr=[NSFetchRequest fetchRequestWithEntityName:@"JiaoModel"];        }-(NSArray *)getDataArr{        return [moc executeFetchRequest:fr error:nil];    }-(void)AddModel:(JiaoModel *)model{        NSError *er;        JiaoModel *mo=[NSEntityDescription insertNewObjectForEntityForName:@"JiaoModel" inManagedObjectContext:moc];        mo.j_hand_id=model.j_hand_id;    mo.j_subject=model.j_subject;    mo.j_thumb=model.j_thumb;        if ([moc save:&er]) {                NSLog(@"保存成功!");    }else NSLog(@"保存失败:%@",er);    }-(BOOL)deleteModel:(JiaoModel *)model{        BOOL no=NO;        NSError *error;    //    [moc deleteObject:model];//    //    if ([moc save:&error]) {//        no=YES;//        NSLog(@"删除成功");//    }else no=NO;            NSPredicate *p=[NSPredicate predicateWithFormat:@"j_thumb = %@",model.j_thumb];    NSLog(@"%@",p);    NSFetchRequest *fe=[NSFetchRequest fetchRequestWithEntityName:@"JiaoModel"];        fe.predicate=p;        NSArray *arr=[moc executeFetchRequest:fe error:nil];        for (JiaoModel *jiao in arr) {                    [moc deleteObject:(NSManagedObject *)jiao];                    if ([moc save:&error]) {                no=YES;                NSLog(@"删除成功");            }else no=NO;    }        return no;}//修改-(void)UpData{        NSError *error;        if([moc save:&error]){        NSLog(@"修改成功");    }else NSLog(@"修改失败");    }-(NSArray *)SearchData:(NSString *)time{        NSPredicate *p=[NSPredicate predicateWithFormat:@"j_thumb = %@",time];    NSLog(@"%@",p);    NSFetchRequest *fe=[NSFetchRequest fetchRequestWithEntityName:@"JiaoModel"];        fe.predicate=p;        NSArray *arr=[moc executeFetchRequest:fe error:nil];            return arr;}-(NSArray *)SearchMohu:(NSString *)time{    NSPredicate *p=[NSPredicate predicateWithFormat:@"mTime like %@",[NSString stringWithFormat:@"*%@*",time]];    NSFetchRequest *fc=[NSFetchRequest fetchRequestWithEntityName:@"JiaoModel"];    fc.predicate=p;        NSArray *arr=[[NSArray alloc]init];    arr=[moc executeFetchRequest:fc error:nil];    return arr;    }



0 0
原创粉丝点击