0

我目前正在开发一个处理电视节目及其剧集的 iOS 应用程序。我有一个一对多的关系设置(Show -> Episodes),并且在 UITableView 中,我希望它按下一个播出剧集对 Show 实体进行排序。我似乎无法弄清楚。我有两种不同的方法,我试图无济于事。

  1. Fetching Episodes:使用 NSPredicate 仅获取 firstAired 属性 >= today 的剧集,然后按 firstAired 排序。填充 tableview 时,我可以访问 Show 属性并提取所需的数据。虽然这很棒,但我结束了今天播出的每一集。我没有看到任何方法只能在今天之后播放第一集。

  2. 获取节目:在节目实体上使用 NSDate 属性(nextEpisodeDate),该属性在添加新剧集和运行应用程序时更新。这意味着我必须经常更新该属性(如果该剧集刚刚播出,该属性可以每 30 分钟更改一次),当我加载我的表格视图时,我必须在每个单元格上找到下一集播出,这会密集并减慢表视图。

有谁知道这样做的有效方法?

4

1 回答 1

0

我会说执行以下步骤仍然有效:

  1. 循环播放每个节目并找到下一集。您可以使用 NSPredicate 来按节目筛选,按 firstAired 排序,并限制 1 以获得您想要的。

  2. 一旦找到该特定节目的下一集,将其添加到 NSMutableArray 中,该数组将存储每个节目的所有即将到来的剧集。

  3. 一旦我们从每个节目中获得了所有即将播出的剧集,请按 firstAired 对 NSMutableArray 进行排序。

  4. 使用排序后的剧集 NSMutableArray 作为表格视图的数据源,并从剧集中获取节目。

我已经构建了一个类似的应用程序,显示每个电视频道即将播出的节目,但我开发的应用程序旨在显示每天即将播出的节目,因此我可以限制 firstAired >= today 和 firstAired <= next day .

于 2013-06-02T07:03:48.680 回答