多个查询返回错误的结果

时间:2015-12-08 13:14:49

标签: ios swift parse-platform

我正在使用解析来尝试创建一个Instagram风格的应用程序,用户可以关注其他用户。下面的代码尝试查询我的解析数据库,并检查登录的用户是否跟随另一个用户。它目前进入你可以看到“在这里输入,但没有附加”的地方。两个问题: 1.它正在为所有用户输入此位置,而不仅仅是当前登录用户所遵循的位置 2. append.isfollowing不起作用。最初,isfollowing.count为0,当我再次打印它时,它仍然是0.即使它进入if语句包含它,附加不起作用 代码如下 - 谢谢!

var usernames = [""]
var userids = [""]
var isFollowing = [Bool]()

override func viewDidLoad() {
    super.viewDidLoad()


    var query = PFUser.query()
    query?.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in

        //check if we have any objects
        if let users = objects {

            //for each element in the users array
            for object in users {

                //convert to PFuser
                if let user = object as? PFUser {

                        //check if the current user is following each user. if so update isfollowing array
                        var query = PFQuery(className: "followers")

                        query.whereKey("follower", equalTo: PFUser.currentUser()!.objectId!)
                        query.whereKey("following", equalTo: user.objectId!)


                        query.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in
                            //if objects returns something
                            if let objects = objects {

                                //if we enter here we know that the logged in user is following the curr user. Update the isfollowing array
                                //ENTERS HERE BUT DOES NOT APPEND
                                self.isFollowing.append(true)

                            } else {
                                self.isFollowing.append(false)
                            }
                        })   
                }
            }
        }
        //reload the table data
        self.tableView.reloadData()
    })

        print(self.isFollowing.count)

1 个答案:

答案 0 :(得分:0)

  
      
  1. 它正在为所有用户输入此位置,而不仅仅是当前登录的用户
  2.   

内部查询正在测试的条件,if let objects = objects测试是否定义了数组(非零)。你想要的是测试数组是否为非零和非空,如:

if objects?.count > 0 {  // we found at least one
  
      
  1. append.isfollowing无效
  2.   

附加到isFollowing的代码以异步方式运行。 viewDidLoad末尾的print语句立即运行,查询完成之前运行。这就是为什么它看起来不起作用(它还没有 )。