以前按日期排序,逐日工作,使用带有NSFRC的sectionNameKeyPath的transient方法。与此解决方案类似:How to Group by day in NSDate with NSPredicate - needed to create multiple UITableView sections
然而,一旦记录数量变大,我想添加批量添加到我的NSFRC。批处理不起作用,因为它必须获取每个记录并运行瞬态方法来确定部分。请参阅:NSFetchedResultsController is loading all rows even through I have batch set
事实上,如果您查看经常链接到此的Apple示例代码,您会注意到批处理实际上无法正常工作。它立即获取所有行以运行瞬态方法。 https://developer.apple.com/library/ios/samplecode/DateSectionTitles/Introduction/Intro.html
我不太确定从哪里开始。白天分组非常关键,但批处理也是如此。
我尝试了一种解决方案,预先计算Day String并将其添加到数据模型中。因此,我的所有模型都有.created
nsdate和.createdDayString
。我按created
排序,并尝试使用createdDayString
作为sectionNameKeyPath
,但是当记录的顺序正确时,它会错误地分组(分组),显然使用字母顺序当天的名字。例如第一部分是星期三。
作为我的解决方案的更新,如果我计算并存储Apple在其示例中的相同值(除了日期,如此SO帖子所示:How to Group by day in NSDate with NSPredicate - needed to create multiple UITableView sections),那么我可以将其用作{ {1}}。这是有效的,但它确实意味着仅为此目的在核心数据对象上存储更多数据。如果有人有一个出色的解决方案,请保持开放。