以Person實體為例(name、age、sex)
Person關系Tel(tel)
1增加數據
NSManagedObject *person = [NSEntityDescription insertNewObjectForEntityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
[person setValue:@"LiJunliang" forKey:@"name"];
[person setValue:[NSNumber numberWithInt:23] forKey:@"age"];
[person setValue:@"boy" forKey:@"sex"];
NSManagedObject *tel = [NSEntityDescription insertNewObjectForEntityForName:@"Tel" inManagedObjectContext:self.managedObjectContext];
[tel setValue:@"133xxxxyyyy" forKey:@"tel"];
[tel setValue:person forKey:@"owner"];
[person setValue:tel forKey:@"tel"];
if (![self.managedObjectContext save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
2刪除數據
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc]init];
NSEntityDescription *entity = [NSEntityDescription entityForName:@"Person" inManagedObjectContext:self.managedObjectContext];
[fetchRequest setEntity:entity];
NSArray *fetchedObjects = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *info in fetchedObjects) {
[self.managedObjectContext deleteObject:info];
}
if ([self.managedObjectContext hasChanges]) {
[self.managedObjectContext save:&error];
}
3修改數據
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@",@"xiaojie"]];
NSArray *fetchedObject = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *info in fetchedObject) {
[info setValue:[NSNumber numberWithInt:24]forKey:@"age"];
}
if (![self.managedObjectContext save:&error]) {
NSLog(@"Whoops, couldn't save: %@", [error localizedDescription]);
}
4查詢數據
NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"Person"];
[fetchRequest setPredicate:[NSPredicate predicateWithFormat:@"name == %@",@"xiaojie"]];
NSArray *fetchedObject = [self.managedObjectContext executeFetchRequest:fetchRequest error:&error];
for (NSManagedObject *info in fetchedObject) {
NSLog(@"Name :%@",[info valueForKey:@"name"]);
NSLog(@"Age :%@",[info valueForKey:@"age"]);
NSLog(@"Sex :%@",[info valueForKey:@"sex"]);
}
PS:修改數據時現查詢,如果實體查詢出來的修改。最后保存時會更新,如果實體時新得到的會插入。