Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/jpa/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios UIcollectionViewCells的数据排序和更新。这是一个失败的事业吗?_Ios_Core Data_Ios6_Uicollectionview - Fatal编程技术网

Ios UIcollectionViewCells的数据排序和更新。这是一个失败的事业吗?

Ios UIcollectionViewCells的数据排序和更新。这是一个失败的事业吗?,ios,core-data,ios6,uicollectionview,Ios,Core Data,Ios6,Uicollectionview,我有核心数据条目显示在collectionView中,从1到2到3排序。。。N当用户翻过前n页时,会添加新的条目批次。数据是通过从web服务器获得的JSON响应构建的 由于fetch请求的第一个条目通过datasource委托与单元格0关联,因此无法在集合视图的底部添加新批。如果从单元格0添加,旧单元格内容将被新内容替换,或者简言之,整个页面似乎被新内容替换,用户查看的数据将被新条目的数量抵消。如果批量较大,则简单地将其掩埋。此外,如果从单元格0进行更新,则所有条目都将可见,这需要时间和内存。

我有核心数据条目显示在collectionView中,从1到2到3排序。。。N当用户翻过前n页时,会添加新的条目批次。数据是通过从web服务器获得的JSON响应构建的

由于fetch请求的第一个条目通过datasource委托与单元格0关联,因此无法在集合视图的底部添加新批。如果从单元格0添加,旧单元格内容将被新内容替换,或者简言之,整个页面似乎被新内容替换,用户查看的数据将被新条目的数量抵消。如果批量较大,则简单地将其掩埋。此外,如果从单元格0进行更新,则所有条目都将可见,这需要时间和内存。 我考虑了几个选项:

1) 数据重排,这意味着取回结果不是1 2 3 4。。。n、 我需要相反的,n。。。3 2 1(与使用逆序排序的提取无关)直接从提取请求开始。我不确定这是否可能?是否有CD gotcha允许在将获取结果呈现给UICollectionViewDataSource委托之前对其重新排序

2) 在“collectionView cellForItemAtIndexPath:”中更改索引路径/viewCell关联,使用(numberOfItemsInSection-IndexPath.Item)。它会创建多个边案例,因为条目可以在视图中删除/更新(因此numberOfItemsInSection更改)。所以我宁愿避免它,如果我能

3) 添加单元格0中的新数据,由于我解释过的原因,排除了此选项。可能有一个解决方案:是否有人通过设置视图偏移获得了令人满意的结果?例如,如果添加了20个新条目,则单元格0的内容将移动到单元格20。所以,我们只需要告诉视图控制器从单元格20开始显示。我能预料到任何图像翻转或副作用吗

4) 下载一大块数据,只需使用内置的核心数据故障机制。但这并不是最理想的,因为我不确定应该下载多少(取决于用户),初始请求(JSON+核心数据)可能需要太长时间。这就是为什么懒散抓取在这里的原因

面对同样问题的人有什么建议可以分享吗


谢谢

我不明白为什么不能在集合视图的底部添加新批。有什么问题吗?您不能将新数据添加到填充集合视图单元格的数组末尾吗?数据不是通过数组获取的,而是使用[self.fetchedResultsController objectAtIndexPath:indexPath]提取的。每当我下载一批新数据时,它就会被插入CD,然后通过一个获取的请求分配给CView。在获取的结果中,新条目首先出现,并从0开始自动分配给viewCells。由于UICollectionViewDataSource的工作方式,单元格索引和获取的条目遵循请求排序顺序。因此,不可能在底部添加新的,因为这是最后显示的。你是如何解决这个问题的?