我正在寻求一些帮助,以理清我将如何处理提要时间线中的空白的逻辑,就像您在各种 Twitter 客户端中看到的一样。但是,我没有创建 Twitter 客户端,因此它不会特定于该 API。我正在使用我们自己的 API,因此我也可以对 API 进行一些更改以适应这一点。
我将每个提要项保存在 Core Data 中。为了持久性,我想保留提要项目。假设我从我的服务器获取 50 个提要项目。下次用户启动应用程序时,我会请求最新的提要项目,我会返回 50 个提要项目,并执行获取以在表格视图中显示提要项目。
两个服务器请求之间可能已经经过了足够长的时间,以至于两组提要项之间存在时间间隔。
50 new feed items (request 2)
----- gap ------
50 older feed items (request 1)
* end of items in core data - just load more *
我通过比较提要项的最旧时间戳request 2
与来自request 1
. 如果最旧的时间戳request 2
大于来自的最新时间戳,request 1
我可以假设存在间隙,我应该显示一个带有按钮的单元格以加载 50 个以上。如果最旧的时间戳request 2
小于或等于request 1
间隙中的最新时间戳已被填充,则无需显示加载器。
我的第一个问题是围绕跟踪是否显示“加载更多”单元格的整个逻辑。我怎么知道在哪里显示这个差距?我是否将其存储为与NSManagedObject entity
我的提要项目相同的额外布尔值+位于上述两者之间的时间戳,然后相应地更改 UI?这里会有另一个更好的解决方案吗?
我的第二个问题与多个差距有关:
50 new feed items
----- gap ------
174 older feed items
----- gap ------
53 older feed items
* end of items in core data - just load more *
我想在这种情况下使用 an 会有所帮助,NSManagedObject entity
这样我就可以在我的核心数据中进行定期提取,如果它们出现在对象中,然后将它们显示为加载单元格并相应地删除它们(如果任何之间不再存在间隙组间隙)。
我最终希望在经过一定时间后擦除这些对象,因为用户可能不会及时返回那么久,如果他们这样做了,如果需要,我总是可以从我的服务器中获取它们。
非常感谢任何人对此主题的任何经验和建议!