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 **********
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];
}