在collectionView

时间:2016-02-28 13:28:35

标签: swift uitableview parse-platform

我有一个带有CollectionView的tableView,在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)
            }
        })

    }

最好的问候。

1 个答案:

答案 0 :(得分:0)

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

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

要创建元组数组,我建议:Image

要添加到数组:

var usersAndImagesArray = [(username: String, imageFile: PFFile)]()

在设置单元格时访问值:

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