0

我想知道当您使用 Parse或其任何后台等效项时, Parse 究竟如何加载PFFile数据。getData()这是我的情况:

我有一个User带有 key 的类profilePic,它是 a PFFile,在本例中是 .JPG 图像。当我加载我的用户时,我想将他的个人资料图片显示到UIImageView. 这是我使用的代码:

let imageFile = user["profilePic"] as PFFile
let imageData = imageFile.getData()
let image = UIImage(data: imageData)

然后我继续将 设置imageUIImageViewin a UITableViewCell

如您所见,我使用的是getData()代替getDataInBackgroundWithBlock(),我将image在完成块中设置 。

问题是,我收到一条警告说我正在阻塞主线程,但是当我快速滚动表格时,我注意到绝对没有任何延迟,因此getData()经常触发。我还在状态栏中看到没有网络指示器,这表明它正在反复从 Parse 中提取图像文件。

总之,我的问题是:解析加载用户时究竟如何加载我的图像文件?当它获取所有用户信息并将其存储在缓存中时,它是否会下载图像文件?还是它只是加载对文件的引用,然后每当我打电话时它都会下载文件getData()

提前致谢。

4

1 回答 1

0

Parse 下载对图像文件的引用,并在您调用getData()它时下载文件的内容。当您的查询被调用时,所有的引用都会被保存(算作一个查询)。然后,每次调用getData()它都算作另一个 API 请求,因为它需要转到服务器并下载已下载引用的内容。资源

如果您的 Internet 连接速度较慢,则在调用getData()主线程时可能会注意到问题。

getData()如果可用,则从缓存中获取数据,或从 Parse 服务器获取其内容。

于 2014-10-09T14:52:40.333 回答