Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 分析collectionView中的显示图像_Swift_Uitableview_Parse Platform - Fatal编程技术网

Swift 分析collectionView中的显示图像

Swift 分析collectionView中的显示图像,swift,uitableview,parse-platform,Swift,Uitableview,Parse Platform,我有一个带有CollectionView的tableView,在tableView中是用户的详细信息,我正在尝试将属于用户的图像放在CollectionView中 到目前为止,我所有的工作正常,除了图像不正确。上传的每个图像都是为每个用户显示的,我需要将图像与用户匹配…我已经尝试了一段时间,但还没有找到解决方案,所以我希望有人能在这里帮助我 以下是我获取用户详细信息和图像的查询: func loadPosts() { let followQuery = PFQuery(cl

我有一个带有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)
            }
        })

    }

致以最诚挚的问候。

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

现在,关于你的实际问题,我相信这是因为你只有一个数组用于所有图像,当你为每个用户显示它时,整个数组都被使用了。为了纠正这一点,我建议以以下格式构建数据结构:
[(字符串,图像)]
,其中
字符串
用户名
,而
图像
是图像的文件。因此,您可以以元组数组的形式访问用户及其图像

要创建元组数组,我建议:
var usersandmagesarray=[(用户名: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

您好,哇,我没想到会有这么多信息!关于您在开始时提到的添加和删除必要数据的内容,我确信您是正确的,我将对此进行研究……我遵循了udemy上的几个教程来学习解析,所以我知道的不多!关于我的问题,我尝试了你的解决方案,但似乎什么都没有改变。不幸的是,我拍了两张照片,所以你可以看看我是如何设置的!CollectionView:&Query:Ps。我需要修复解析列中的“usernamee”!!关于“数组将是多个对象”,你也说得对。它可能会有所不同,可能有5张图片,或者根本没有。我不确定我是否理解。您说过表视图中的每一行都有一个单独的集合视图。为了只获取每个用户的图像,您需要创建一个变量来存储表视图的
index.row
,而不是集合视图。我不清楚。它应该是这样的:
var indexOfTableViewRow:Int
file=usersandmagesarray[indexOfTableViewRow].imageFile
我在tableViewCell中有一个collectionView,它根据用户数量重复。在该collectionView中,有一个单元格,用于显示正在显示的用户的图像。我可以把你在上面的评论添加到我的tableView cellForRow吗…?不,相反。该行应位于
单元格ForItemAtIndexPath
中,索引来自表视图单元格中的行。