Ios 如何";“保存”;(核心数据)用于;母公司/母公司;处于“状态”时的实体;“细节”;实体视图?

Ios 如何";“保存”;(核心数据)用于;母公司/母公司;处于“状态”时的实体;“细节”;实体视图?,ios,objective-c,core-data,Ios,Objective C,Core Data,在我的应用程序中,我有一个模型,如图所示: 一个播放列表可以没有或有多个项目。在主视图中创建播放列表时,播放列表与默认数据一起存储,视图切换到可添加/删除项目的项目列表[详细信息]视图。这个很好用 但是,在详细信息(项目列表)视图中,我希望设置一个属性(targetEndTime),该属性应存储在引用的播放列表对象中。我希望它在细节视图上隐式存储,而不是在返回主视图时隐式存储 我如何做到这一点 如果从两个视图控制器中重构出核心数据是最佳实践,那么将如何实现,以及如何保存到特定的对象引用 非常感

在我的应用程序中,我有一个模型,如图所示:

一个播放列表可以没有或有多个项目。在主视图中创建播放列表时,播放列表与默认数据一起存储,视图切换到可添加/删除项目的项目列表[详细信息]视图。这个很好用

但是,在详细信息(项目列表)视图中,我希望设置一个属性(targetEndTime),该属性应存储在引用的播放列表对象中。我希望它在细节视图上隐式存储,而不是在返回主视图时隐式存储

我如何做到这一点

如果从两个视图控制器中重构出核心数据是最佳实践,那么将如何实现,以及如何保存到特定的对象引用

非常感谢您的帮助和投入

更新 TargetEndTime是一个集合属性,从中计算开始时间。这是一个“倒计时”——我想知道开始播放列表集的时间,以便它在targetEndTime结束。因此,当设置targetEndTime时,我希望将其存储在父实体中

如何在代码中实现这一点?我正在传递播放列表:

self.playlistViewController = (BXPlaylistViewController *)segue.destinationViewController;              
NSIndexPath *indexPath = [self.tableView indexPathForSelectedRow];                  
Playlist *playlist = nil;         
playlist = [self.fetchedResultsController objectAtIndexPath:indexPath];            
self.playlistViewController.playlist = playlist;

如注释所述,您可以通过项目的关系直接访问项目的播放列表

因此,假设您在其详细视图中保留对列表的引用

e、 g
@属性项*focusedItem

-(void)updateTargetEndTime:(NSTimeInterval)timeInterval {

    Playlist *playlist = [self.focusedItem valueForKey:@"playlist"];

    [playlist setValue:@(timeInterval) forKey:@"targetEndTime"];

}
这是最原始的版本,但随着coredata的发展,您会希望使用类似于Xcode或只是Xcode的工具

为托管对象创建垫片类,使您可以这样表示

-(void)updateTargetEndTime:(NSTimeInterval)timeInterval {

    item.playlist.targetEndTimeValue = timeInterval;

}

目标结束时间根据添加项目的数量(和持续时间)而变化,对吗?不,它是一个集合属性,从中计算开始时间。这是一个“倒计时”——我想知道开始播放列表集的时间,以便它在targetEndTime结束。因此,当设置targetEndTime时,我希望将其存储在父实体中。正如您从数据模型中看到的,
也与其
播放列表
具有反向关系。因此,您可以访问
项目
的播放列表,并修改其
targetEndTime
。我可以在代码中的何处/如何实现这一点?我正在传递播放列表:
self.playlistViewController=(BXPlaylistViewController*)segue.destinationViewController;NSIndexPath*indexPath=[self.tableView indexPathForSelectedRow];播放列表*播放列表=无;playlist=[self.fetchedResultsController对象索引路径:indexPath];self.playliViewController.playlist=播放列表我认为您对CoreData没有太多经验。你真的应该从简单的事情开始。我无法解释你应该如何实现目标。不需要使用mogenerator。Xcode也能做到这一点(也许更好)。