3

我们[PFObject pinAllInBackground:] 在 Parse iOS SDK 中使用时遇到问题。

我们发现当我们使用 时[PFObject pinAllInBackground],UI 有时会卡住。例如,我们使用 获取 Post 对象的列表PFQuery,而 Post 有一些包含在查询中的指针字段。在查询的成功块中,我们调用pinAllInBackground缓存所有检索到的 Post 对象到我们的本地存储中(其中一些帖子之前可能已被固定)。之后(不是异步等到使用 BFTask 或块完成 pin),我们立即用帖子替换表视图的数据源并重新加载表视图。我们的问题是,在此过程中,UI 将始终冻结至少半到一秒(例如滚动表格视图时突然停止,切换到选项卡中的其他视图时无响应等)。如果我注释掉pinAllInBackground,UI 冻结消失。这在我们的应用程序中总是可以重现的。

我还注意到,PFPinningObjectStore似乎总是重新固定我本地数据存储中的每个对象(我在测试时在我的应用程序中固定了 491 个对象)。

正如我之前了解到的,pin 进程应该在主线程之外的不同线程中执行,因此当我们调用pinAllInBackground. 是否有任何类型的操作可能会与主队列发生冲突pinAllInBackground并阻塞主队列?谢谢!

PS 我们也在使用 Realm 来持久化某些类型的对象。不确定它是否与任何情况有关。

4

0 回答 0