我想知道当您使用 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)
然后我继续将 设置image
为UIImageView
in a UITableViewCell
。
如您所见,我使用的是getData()
代替getDataInBackgroundWithBlock()
,我将image
在完成块中设置 。
问题是,我收到一条警告说我正在阻塞主线程,但是当我快速滚动表格时,我注意到绝对没有任何延迟,因此getData()
经常触发。我还在状态栏中看到没有网络指示器,这表明它正在反复从 Parse 中提取图像文件。
总之,我的问题是:解析加载用户时究竟如何加载我的图像文件?当它获取所有用户信息并将其存储在缓存中时,它是否会下载图像文件?还是它只是加载对文件的引用,然后每当我打电话时它都会下载文件getData()
?
提前致谢。