gpt4 book ai didi

ios - 单元格中的个人资料图片未正确更新

转载 作者:行者123 更新时间:2023-11-29 01:55:47 24 4
gpt4 key购买 nike

我有一个由不同用户的评论填充的 PFQueryTableViewController。每个用户都有一张个人资料图片存储在 Parse 数据库中。将每条评论加载到单元格后,我查询 PFUser 类以检索发布评论的用户的个人资料图片并将其添加到单元格。我还使用 PFCachePolicy 将个人资料图片缓存到设备的内存中,以便显示带有新个人资料图片的新单元格是更平滑的过渡。

然而事实并非如此。当用户发布新评论并添加新单元格时,个人资料图片会随机播放并需要大约两秒钟左右的时间才能更新为正确的图像(可能是因为重新查询和更新了表格)。我正在尝试实现类似于 iMessage 或 WhatsApp 的功能,其中个人资料图片在单元格中保持“固定”。

我不确定问题出在哪里,或者是否有更好的方法?

    // get objectId of the user who posted a comment
let senderId = object?["Users"]!.objectId as String!

// query PFUser class using senderId to retrieve profile picture
var senderImage:PFQuery = PFUser.query()!
senderImage.cachePolicy = PFCachePolicy.CacheThenNetwork
senderImage.getObjectInBackgroundWithId(senderId){
(sender: PFObject?, error: NSError?) -> Void in

if error == nil && sender?.objectForKey("profilePicture") != nil {
let thumbnail = sender?.objectForKey("profilePicture") as? PFFile
thumbnail?.getDataInBackgroundWithBlock({
(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
imageView.image = UIImage(data:imageData!)
} else {
println(error)
}
})
}
}

最佳答案

那是因为您在更新 UIImageView 时没有等到图像加载完成。尝试使用此代码:

     var query = PFQuery(className:"Users")


query.findObjectsInBackgroundWithBlock {
(objects: [AnyObject]?, error: NSError?) -> Void in

if error == nil {
// The find succeeded.
self.scored = objects!.count
// Do something with the found objects
if let objects = objects as? [PFObject] {
for object in objects {




let userImageFile = object["Image"] as! PFFile
userImageFile.getDataInBackgroundWithBlock {
(imageData: NSData?, error: NSError?) -> Void in
if error == nil {
if let imageData = imageData {
let image = UIImage(data:imageData)

self.imageArray.append(image!)

}
}



dispatch_async(dispatch_get_main_queue()) {
//don't reload image view here!
}

}





}
}
} else {
// Log details of the failure
print("Error: \(error!) \(error!.userInfo)")
}

dispatch_async(dispatch_get_main_queue()) {

//wait until here to reload the image view

if self.imageArray.isEmpty == false {
//image array is not empty

self.ImageView.image = imageArray.first

}
else {
//no images found in parse
}



}

关于ios - 单元格中的个人资料图片未正确更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30876787/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com