我在核心数据中添加一个实例。实体由 表示NSArrayController
。我想通过控制器访问新添加的实例。
添加了一个“技能”实例,然后我尝试通过selectAddedObject
如下方式访问它:
-(void)addSkill
{
[self selectAddedObject:[NSEntityDescription insertNewObjectForEntityForName:@"Skill"
inManagedObjectContext:self.managedObjectContext]];
}
- (void)selectAddedObject:(NSManagedObject *)addedMO
{
[self.sectionArrayController setSelectedObjects:[NSArray arrayWithObject:addedMO]];
NSLog(@"Selected: %@", [self.sectionArrayController valueForKey:@"selectedObjects"]);
}
这似乎只有在我添加时才有效
[self.managedObjectContext processPendingChanges];
作为 的第一行selectAddedObject:
。但是一旦我这样做了,文档似乎忘记了它仍然需要保存,我可以退出应用程序而不自动保存我的添加。不想把它强加给用户!
关于以其他方式立即更新阵列控制器的任何想法?或者也许以另一种方式添加对象?由于 OSX 的变化,一些较早的答案(例如,在将 enitiy 添加到核心数据时更新 NSTableView)似乎有点过时了。
谢谢!!