到目前为止,这是我所做/设置的:
- 在NSOutlineView(源列表)中选中了"自动保存展开项"。 - 为"自动保存"设置了名称。 - dataSource和delegate outle赋值给我的控制器。
这是我的outlineView:persistentObjectForItem和outlineView:itemForPersistentObject实现:
- (id)outlineView:(NSOutlineView *)anOutlineView itemForPersistentObject:(id)object
{
NSURL *objectURI = [[NSURL alloc] initWithString:(NSString *)object];
NSManagedObjectID *mObjectID = [_persistentStoreCoordinator managedObjectIDForURIRepresentation:objectURI];
NSManagedObject *item = [_managedObjectContext existingObjectWithID:mObjectID error:nil];
return item;
}
- (id)outlineView:(NSOutlineView *)anOutlineView persistentObjectForItem:(id)item
{
NSManagedObject *object = [item representedObject];
NSManagedObjectID *objectID = [object objectID];
return [[objectID URIRepresentation] absoluteString];
}
有任何想法吗?谢谢。
编辑: 我有线索!问题可能是树控制器没有及时准备其内容。在数据加载完成之前或者NSOutlineView尚未完成初始化之前,applicationDidFinishLaunching、outlineView:persistentObjectForItem等方法将被执行。有什么解决办法吗?