gpt4 book ai didi

swift - 解析collectionView中的显示图像

转载 作者:行者123 更新时间:2023-11-30 13:40:01 25 4
gpt4 key购买 nike

我有一个tableView,里面有一个CollectionView,TableView中是用户的详细信息,我试图将属于用户的图像放入collectionView中。

到目前为止,除了图像不正确之外,一切正常。上传的每个图像都会为每个用户显示,我需要将图像与用户匹配...我已经尝试了一段时间但没有找到解决方案,所以我希望有人可以在这里帮助我!

这是我获取用户详细信息和图像的查询:

 func loadPosts() {


let followQuery = PFQuery(className: "Follows")
followQuery.whereKey("follower", equalTo: PFUser.currentUser()!.username!)
followQuery.findObjectsInBackgroundWithBlock ({ (objects:[PFObject]?, error:NSError?) -> Void in
if error == nil {
self.followArray.removeAll(keepCapacity: false)

for object in objects! {
self.followArray.append(object.valueForKey("following") as! String)

}

self.followArray.append(PFUser.currentUser()!.username!)
let query = PFQuery(className: "Posts")
query.whereKey("usernamee", containedIn: self.followArray)
query.addDescendingOrder("createdAt")

query.findObjectsInBackgroundWithBlock({ (objects:[PFObject]?, error:NSError?) -> Void in
if error == nil {

self.usernameArray.removeAll(keepCapacity: false)
self.imageArray.removeAll(keepCapacity: false)
self.uuidArray.removeAll(keepCapacity: false)

for object in objects! {

self.usernameArray.append(object.valueForKey("username") as! String)
self.imageArray.append(object.valueForKey("imageArray") as! PFFile)
self.uuidArray.append(object.valueForKey("uuid") as! String)

}

self.tableView.reloadData()

} else {

print(error!.localizedDescription)
}
})
} else {
print(error!.localizedDescription)
}
})

}

致以诚挚的问候。

最佳答案

我在您的代码中发现三个问题。首先,在您的 Posts 查询中,您使用 whereKey() 方法:query.whereKey("usernamee", containsIn: self.followArray). username 拼写错误,这可能会导致一些问题。此外,每次发出查询时,都会从数组中删除所有对象。必须有某种方法根据需要添加和删除数据。 (这只适用于刷新数据的情况。如果您尚未向数组添加数据,则无需清空它们。)最后,您有一个名为 imageArray 的值,它存储为 PFFile。一个数组可以是多个对象。很难判断每个用户是否拥有多个图像。 (对于解决方案,我假设每个用户只有一张图像。我建议更改 key 名称以使其更精确。如果不是这种情况,请给我写评论。)

现在,关于您的实际问题,我认为这是因为您只有一个用于所有图像的数组,并且当您为每个用户显示它时,将使用整个数组。为了纠正这个问题,我建议按照以下格式构建数据结构:[(String, Image)],其中String用户名Image 是图像文件。因此,您可以将用户及其图像作为元组数组进行访问。

要创建元组数组,我建议:var usersAndImagesArray = [(username: String, imageFile: PFFile)]()

添加到数组:

for object in objects!{
usersAndImagesArray.append(object.valueForKey("username") as! String, object.valueForKey("image") as! PFFile)
}

要在设置单元格时访问值:

let username = usersAndImagesArray[index.row].username
let imageFile = usersAndImagesArray[index.row].imageFile

关于swift - 解析collectionView中的显示图像,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35683116/

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