JC专题移动端开发那点事

数据处理之CoreData

2016-04-07  本文已影响131人  Zcocoa
CoreData和SQLite的比较
CoreData核心对象
CoreData数据库框架的核心对象

CoreData数据库的简单操作

第一步:添加AppDelegate头文件

#import "AppDelegate.h"

第二步:通过单例方法获取协议
AppDelegate *delegate = [UIApplication sharedApplication].delegate;
第三步:创建实体对象
//.创建实体对象(也就是具体对那个表进行操作)
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:delegate.managedObjectContext];
第四步:增删查改
/**增**/
//在创建的时候要使用coreData提供的方法,这样数据管理器就可以管理此数据了
Person *person = [[Person alloc] initWithEntity:entity insertIntoManagedObjectContext:delegate.managedObjectContext];
//同步到数据库
    person.name = @"张三";
    person.sex = @"nan";
    person.age = 12;
    [delegate saveContext];

/**删**/
//    创建请求体
NSFetchRequest *request1 = [[NSFetchRequest alloc] init];
//    //请求需要的具体实体
request1.entity = entity;
//    //创建请求条件
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"age > 1"];
request1.predicate = predicate;
NSArray *array1 = [delegate.managedObjectContext executeFetchRequest:request1 error:nil];
for (Person *person2 in array1) {
    [delegate.managedObjectContext deleteObject:person2];
    NSLog(@"%@",person2.name);
}
[delegate saveContext];

/**查**/
//创建请求体
NSFetchRequest *request = [[NSFetchRequest alloc] init];
//请求体需要的具体实体
request.entity = entity;
NSArray *array = [delegate.managedObjectContext executeFetchRequest:request error:nil];
for (Person *person1 in array) {
    NSLog(@"%@",person1.name);
    NSLog(@"%p",person1);
}

/**改**/
//创建请求体
NSFetchRequest *request2 = [[NSFetchRequest alloc] init];
request2.entity = entity;
//创建请求条件
NSPredicate *predicate1 = [NSPredicate predicateWithFormat:@"name = %@",@"张三"];
request2.predicate = predicate1;
NSArray *array2 = [delegate.managedObjectContext executeFetchRequest:request2 error:nil];
for (Person *person3 in array2) {
    person3.name = @"李四";
    NSLog(@"%@",person3.name);
}
[delegate saveContext];
AppDelegate中CoreData自带的方法

<pre><code>- (NSURL *)applicationDocumentsDirectory {
// The directory the application uses to store the Core Data store file. This code uses a directory named "xalo.UI___CoreData" in the application's documents directory.
return [[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject];
}`
//懒加载

pragma mark - Core Data Saving support

上一篇下一篇

猜你喜欢

热点阅读