Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/94.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/38.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 脱机数据的同步UITableView/UICollectionView使用_Ios_Uitableview_Synchronous - Fatal编程技术网

Ios 脱机数据的同步UITableView/UICollectionView使用

Ios 脱机数据的同步UITableView/UICollectionView使用,ios,uitableview,synchronous,Ios,Uitableview,Synchronous,我在尝试与iOSUITableView/UICollectionView视图进行争论以完成我需要的工作时玩得很开心。本质上,我有一些与本地交互的数据-没有网络延迟,操作都非常简单,可以同步完成 但是,在默认情况下,重新加载这些类中的数据似乎是异步的,没有明显的同步使用方法reloadData()似乎是在没有用户交互(如滚动)的情况下强制更新的唯一方法,但它是异步的,没有明显的同步选项 这些类提供了很多功能(特别是拖放功能),但是当用户直接操作数据时,明显的延迟有点破坏交易。例如,当用户更改数据时

我在尝试与iOS
UITableView/UICollectionView
视图进行争论以完成我需要的工作时玩得很开心。本质上,我有一些与本地交互的数据-没有网络延迟,操作都非常简单,可以同步完成

但是,在默认情况下,重新加载这些类中的数据似乎是异步的,没有明显的同步使用方法
reloadData()
似乎是在没有用户交互(如滚动)的情况下强制更新的唯一方法,但它是异步的,没有明显的同步选项

这些类提供了很多功能(特别是拖放功能),但是当用户直接操作数据时,明显的延迟有点破坏交易。例如,当用户更改数据时,将视图的
数据源
强制到另一个类中,这样的实验会破坏使用这些类的目的,并使情况更加复杂


是否有任何方法可以以基本同步的方式使用这些类

Crikey——试了几个小时后问一个愚蠢的问题,5分钟后就会有答案

我意识到我在这里的错误不是TableView及时更新,而是在
dataSource
上保留了本应清除的数据

正如我所看到的-
重新加载数据
确实是异步发生的,但是在相当短的渲染周期内,这对于用户来说应该是不可察觉的


正如@Paulw11所指出的,更好的方法是通过基于行的操作,如果你没有对每个突变的数据集进行核处理(就像我一样)

Crikey-尝试数小时后问一个愚蠢的问题,5分钟后就会得到答案

我意识到我在这里的错误不是TableView及时更新,而是在
dataSource
上保留了本应清除的数据

正如我所看到的-
重新加载数据
确实是异步发生的,但是在相当短的渲染周期内,这对于用户来说应该是不可察觉的


正如@Paulw11所指出的,更好的方法是通过基于行的操作,如果您没有在每个变异上对数据集进行nuking(如我所做的)

,除非您从根本上改变整个数据集(如您提到的切换
数据源时),
应该避免重新加载数据。您可以使用
reloadRows
insertRows
deleteRows
以更精细的方式进行更改。也许你可以用一个具体的例子来澄清你的问题,说明你正在尝试做什么,以及你在tableview方法中遇到的问题?除非你从根本上改变整个数据集(如你提到的切换
dataSource
),否则应该避免
reloadData
。您可以使用
reloadRows
insertRows
deleteRows
以更精细的方式进行更改。也许您可以用一个具体的例子来澄清您的问题,说明您正在尝试做什么,以及您在tableview方法中遇到的问题?