【发布时间】:2016-05-25 10:03:58
【问题描述】:
我在 Core Data 数据库中有 Orders 对象。它们中的每一个都有日期和字段 flag = 0 或 1(1 表示该对象是从服务器加载的所有其他对象并且具有所有正确的字段并且不再更改,0 表示该对象可以稍后更改,我需要稍后从服务器重新加载它)。我需要使用按日期排序的 NSFetchedresultController 在 UITableView 中加载该数据,但我只需要加载此数据直到 0 (因为之后我将在表底部显示 UIActivityIndicator 以从服务器加载其他数据)。例如,我有按日期排序的数据:
1 1 1 1 1 0 0 0 1 1 1 1
我只需要加载前五个对象(用粗体标记)。我不知道如何正确编写 NSPredicate。如果我写“flag > 0”,我将使用 flag = 1 加载其他对象。现在我只看到加载所有数据并使用 for 循环形成正确数组的解决方案。但是有没有更好的解决方案?
【问题讨论】:
-
为什么不在带有零标志(希望存储为 bool false)的行上显示带有指示器或刷新按钮的所有行?
-
因为在这种情况下,当用户加载信息时,他将不知道哪些行是最新的,哪些行是旧数据(可能是 1 个月大)。在没有最新信息的行上显示指示器是违反设计的。最好只显示最新的行,直到旧行。并且这是一种罕见的情况,用户将有“0”行,并会刺激用户通过一个请求加载旧行
标签: ios core-data nspredicate nsfetchedresultscontroller nsfetchrequest