IOS开发:CoreData的应用

来源:互联网 发布:c语言判断奇数偶数 编辑:程序博客网 时间:2024/05/19 15:40

CoreData 最简单的一个数据插入操作:

1 先创建一个工程,注意要勾选 Use Core Data 项

2 在“项目名称.xcdatamodeld 项添加一个表"Person",并增加两个字段name,age”

3 选中刚创建好的表,Editor--Create NSManagedObject SubClass...  将刚才创建的表生成为类

4 在Appdelegate.m中引入刚生成的Person,然后编写如下代码,即可做一个简单的数据插入操作

//打印数据库的路径    NSLog(@"%@",[[[NSFileManager defaultManager] URLsForDirectory:NSDocumentDirectory inDomains:NSUserDomainMask] lastObject]);        //创建实体描述 (1 实体类,2临时存储的上下文)    NSEntityDescription * description = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];        //创建Person对象(1 实体描述  2临时存储的上下文)    Person * person = [[Person alloc]initWithEntity:description insertIntoManagedObjectContext:self.managedObjectContext];        //实体对象赋值    person.name = @"张三";    person.age = @20;        //一定要记着保存    [self.managedObjectContext save:nil];


fetch 请求数据

//********* fetch **********    NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];    NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];    [fetchRequest setEntity:entity];    // Specify criteria for filtering which objects to fetch    //谓词 做条件过滤  不是必须项//    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"classesShip == %@", self.currentClasses];//    [fetchRequest setPredicate:predicate];    // Specify how the fetched objects should be sorted    //排序方式  不是必须项 这里的key按某个字段排序这里是按age排序 最后YES为升序 NO为降序//    NSSortDescriptor *sortDescriptor = [[NSSortDescriptor alloc] initWithKey:@"age"  ascending:YES];//    [fetchRequest setSortDescriptors:[NSArray arrayWithObjects:sortDescriptor, nil]];        NSError *error = nil;    //发送请求并返回数据    NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];    if (fetchedObjects == nil) {            }else{        Person * person1 = fetchedObjects[0];        NSLog(@"%@,%@",person1.name,person1.age);                //修改        person1.name = @"李四";        //保存        [self.managedObjectContext save:nil];                //删除        [self.managedObjectContext deleteObject:fetchedObjects[0]];        //保存        [self.managedObjectContext save:nil];    }



0 0
原创粉丝点击