如何在没有警告的情况下直接从PFFile获取数据

时间:2014-12-29 14:01:42

标签: parse-platform pffile

我正在使用PFFile来存储图像。如果图像已经下载,我想直接访问它。如果没有,我想使用背景方法。但是,如果我使用getData,我会收到以下警告:

Warning: A long-running operation is being executed on the main thread. 
 Break on warnBlockingOperationOnMainThread() to debug.

由于我知道数据可用,因此不需要此警告并使我的日志变得混乱。有没有办法在不触发警告的情况下访问PFFile的数据?

1 个答案:

答案 0 :(得分:3)

您收到警告,因为本地的数据,而getData是从服务器获取数据的同步调用。当调用getData时,它会阻塞主线程 - UI - 并停止所有应用程序交互,直到数据下载,这就是您收到错误的原因。通常,阻止用户界面执行后台操作(例如下载),非常不赞成。

我会使用PFFile的isDataAvailable属性来检查数据是否在本地可用。如果不是,请使用getDataInBackgroundWithBlock:在后​​台获取数据。您可以使用该调用提供的完成方法来更新imageView。

UPDATE - 您还可以将getData调用包装在dispatch_async块中,这会将操作移动到另一个线程,从而将其从主线程中删除并删除警告。