PFFile加载行为

时间:2014-10-09 11:35:18

标签: ios swift parse-platform pffile

我想知道当您使用PFFile或其任何背景等价物时Parse如何加载getData()数据。这是我的理由:

我有一个User课程,其中包含一个profilePicPFFile,在这种情况下是一个.JPG图片。当我加载用户时,我想将他的个人资料图片显示为UIImageView。这是我使用的代码:

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

然后我继续将image设置为UIImageView中的UITableViewCell

正如您所看到的,我使用getData()代替getDataInBackgroundWithBlock(),我会在完成块中设置image

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

总之,我的问题是这样:解析加载用户时,解析加载我的图像文件的确切方式是什么?是否在获取所有用户信息并将其存储在缓存中时下载图像文件?或者只是加载对文件的引用,之后每当我调用getData()时它都会下载文件?

提前致谢。

1 个答案:

答案 0 :(得分:0)

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

如果您的互联网连接速度较慢,则在主线程上调用getData()时可能会发现问题。

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