【发布时间】:2013-04-09 09:44:52
【问题描述】:
这是 coredata 架构的结构。
将条目添加到“艺术家”后,将它们用于新添加的“专辑”条目效果很好。
但问题如图 2 和 3 所示,在将“michael jackson”分配给“Insomniac 2010”专辑然后将同一艺术家添加到“Baby ft ludacris”后,失去了专辑“Insomniac”的引用.
这是我在 AlbumDetailViewController.h
中保存上下文的代码- (void)EntityRecordstableview:(UITableView *)tableView didselectrowatindexpath:(NSIndexPath *)indexPath forentity:(id)entity
{
Artist *selectedArtist = entity;
UITableViewCell * cell = [tableView cellForRowAtIndexPath:indexPath];
[cell setSelected:NO animated:YES];
if ([self.pickedArtists containsObject:selectedArtist]) {
[self.pickedArtists removeObject:selectedArtist];
[cell setAccessoryType:UITableViewCellAccessoryNone];
editingAlbum.artist = self.pickedArtists;
[self saveTheContext:editingAlbum.managedObjectContext];
// NSLog(@"%d",self.pickedArtists.count);
}
else {
[self.pickedArtists addObject:selectedArtist];
[cell setAccessoryType:UITableViewCellAccessoryCheckmark];
editingAlbum.artist = self.pickedArtists;
[self saveTheContext:editingAlbum.managedObjectContext];
// NSLog(@"%d",self.pickedArtists.count);
}
}
我认为 managedObjectContext 保存一定有问题。 是不是应该是这样的
self.managedObjectContext = [(AppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
[self saveTheContext:self.managedObjectContext];
而不是
[self saveTheContext:editingAlbum.managedObjectContext];
我试过了,但这也没有按预期工作。
【问题讨论】:
标签: core-data relationship nsmanagedobject nsmanagedobjectcontext