Передача данных из одной таблицы в другую при синтаксическом анализе

все пытаются получить данные из одной таблицы с помощью указателей, например, пользовательской таблицы и таблицы песен, когда вы нажимаете на пользователя, он отображает список песен в таблице песен, специфичных для этого идентификатора объекта пользователей я пытался использовать этот метод, но я получаю ошибку query.wherekey("" equalTo: (PFUser.current()?.objectId!)!)

ВОТ МОЙ КОД

        var users = [""]
    var userIDs = [""]
    var isFollowing = ["" : true]

    override func viewDidLoad() {
        super.viewDidLoad()
    //load user query

        let query = PFUser.query ()
        query?.findObjectsInBackground(block: { (objects, error) in

            if error != nil {

            print(error!)

            } else if let users = objects {

                for objects in users {

                    if let user = objects as? PFUser {

                    self.users.append(user.username!)
                    self.userIDs.append(user.objectId!)

                        let query = PFQuery(className: "Followers")
                        query.whereKey("Follower", equalTo: (PFUser.current()?.objectId!)!)
                        query.whereKey("Following", equalTo: user.objectId!)

                        query.findObjectsInBackground(block: { (objects, error) in

                            if let objects = objects {
                                if objects.count > 0 {
                                self.isFollowing[user.objectId!] = true

                                } else {

                                   self.isFollowing[user.objectId!] = false

                                }
                                if self.isFollowing.count == self.users.count {
                                self.tableView.reloadData()

                                }

                            }

                        })

                    }

                }

            }



        })

спасибо всем

**HERE IS MY CODE FOR THE FIRST  VIEW WHERE I AM ABLE TO GET ALL USERS AND SEGUE TO ANOTHER TABLE VIEW CONTROLLER**

    //
//  users.swift
//  
//
//  Created by Nawir on 1/17/17.
//  Copyright © 2017 Nawir. All rights reserved.
//

import Foundation
import Parse

class artistsviewcontroller: UITableViewController {


    var users = [""]
    var userIDs = [""]

    override func viewDidLoad() {
        super.viewDidLoad()
        //updating users array

        let query = PFUser.query ()
        query?.findObjectsInBackground(block: { (objects, error) in

            if error != nil {

                print(error!)

            } else if let users = objects {

                for objects in users {

                    if let user = objects as? PFUser {

                        self.users.append(user.username!)
                        self.userIDs.append(user.objectId!)

                    }

                }

            }


            self.tableView.reloadData()
        })
    }


    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
        return users.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {

        let Usercell = tableView.dequeueReusableCell(withIdentifier: "Cell") as! mTableViewCell
        Usercell.textLabel!.text = users[indexPath.row]
        return Usercell

    }


    override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {

        //  print("rowtapped: (indexPath.row)")



        let ItemlistTableViewController = self.storyboard?.instantiateViewController(withIdentifier: "itemviewscont") as! itemviewscont



        self.navigationController?.pushViewController(ItemlistTableViewController, animated: true)




            }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

}

ВОТ МОЙ ВТОРОЙ TABLEVIEWCONTROLLER

//  itemviews.swift
//  
//
//  Created by Nawir on 1/17/17.
//  Copyright © 2017 Nawir. All rights reserved.
//

import Foundation
import Parse

class itemviewscont: UITableViewController {

    var users = [String: String] ()
    var itemname = [String] ()

    override func viewDidLoad() {
        super.viewDidLoad()
        //query to get all user data from parse
        let query = PFUser.query()
        query?.findObjectsInBackground { (objects, error) in

            if let users = objects {
                self.users.removeAll()
                for object in users {
                    if let user = object as? PFUser {
                        // self.users = [user.objectId!]
                        self.users[user.objectId!] = user.username!

                    }

                }

            }
            //query to make connection

        let getfollow = PFQuery(className: "Mkitems")
          getfollow.whereKey("user", equalTo: PFUser.current()!)
            getfollow.findObjectsInBackground(block: { (objects, error) in
               if let followers = objects {
                    for object in followers {
                        if let follower = object as? PFObject {

                        let mainuser = follower["User"]
                            let query = PFQuery(className: "Music")
                            query.whereKey("fuser", equalTo: mainuser!)
                            query.findObjectsInBackground(block: { (objects,error) in
                               if let nitems = objects {
                                   for object in nitems {
                                       if let nitem = object as? PFObject {
                                        self.musicname.append(nitem["name_title"] as! String)
                                            self.tableView.reloadData()
                                        }
                                    }
                                }

                            })
                        }
                    }

               }

            })

      }
    }

override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }

    // MARK: - Table view data source

    override func numberOfSections(in tableView: UITableView) -> Int {
        // #warning Incomplete implementation, return the number of sections
        return 1
    }

    override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {


        return itemname.count
    }

    override func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
        let cell = tableView.dequeueReusableCell(withIdentifier: "mscell", for: indexPath)

        cell.textLabel?.text = itemname[indexPath.row]

        return cell

    }
//dont pass this line its the end!
}

СПАСИБО ВСЕМ

1 ответ

  1. Если вы ищете текущий объект пользователя (предполагая, что Follower является указателем ), то используйте

    query.whereKey("Follower", equalTo: PFUser.current()!) 
    

    и не :

     query.whereKey("Follower", equalTo: (PFUser.current()?.objectId!)!)