2015-02-23 23 views
1

好吧,我有一个视图,我需要显示用户所在位置附近的业务的所有帖子。我的数据库设置的方式是,有一个“BusinessPost”类,其中包含指向我的“商业”类的指针,以便每个帖子都拥有一个所有者。试图在Swift中使用指向另一个类的指针作为Parse查询的一部分

当我试图写我的看法的查询,我似乎无法弄清楚如何只从用户的当前位置获得帖子。我可以从每项业务中获取所有帖子,或者我可以在用户的​​位置获得所有业务,但我无法找到一种方法将两者结合起来,以便仅获取来自企业附近用户所在的帖子。

我的想法是首先获取用户所在位置附近的所有商家,然后使用“inQuery”参数进行第二次查询,以查找在用户所在位置附近有一个指向业务指针的所有帖子在第一个查询中获得。

但是,这是行不通的,我一直坚持这一两天。有没有人有什么建议?帮助将不胜感激。

getPostsFromLocatedBusinesses.whereKey("Businesses", matchesKey: "objectId", inQuery: getBusinessesInLocation) 

编辑1:好了,所以我按照你的建议,并与下面上来改写了它,但它仍然不会产生任何结果:

override func queryForTable() -> PFQuery! { 
    var getPosts = PFQuery(className: self.parseClassName) 
    var getBusinesses = PFQuery(className: "Businesses") 

    if locationUpdated == false { 
     return nil 
    } 
    else { 
      getBusinesses.whereKey("City", equalTo: self.city) 
      getBusinesses.whereKey("State", equalTo: self.state) 
      getPosts.whereKey("Business", matchesQuery: getBusinesses) 
      getPosts.includeKey("Business") 


    self.tableView.hidden = false 
    self.tableView.reloadData() 
    return getPosts 
    } 
} 
+1

BusinessPost上指向Business类的指针列的名称是什么?内部查询应该是您在用户附近开展业务的查询。然后,BusinessPost查询应该只是whereKey:(BusinessPost上指针列的名称)matchesQuery:内部查询。 – danh 2015-02-23 17:45:57

+0

@danh我重写了查询并编辑了我的原始帖子。 – pbush25 2015-02-23 19:50:43

+0

嗯。它看起来应该起作用。如果你已经仔细检查了所有的键名,解析类名等,并且self.city和self.state如预期的那样,并且locationUpdated是真的,等等......并且你确定那里数据中的行满足这些标准,然后我难住了。 – danh 2015-02-23 21:04:37

回答

2

为了查询基于两个独立的Parse类,其中查询的一部分是指向另一个类的指针,最好的方法是在包含指针的类上进行外部查询,然后使用内部查询来查找任何补充对象您正在寻找。就我而言,这意味着要查找位于用户所在位置的商户,然后仅在用户位置附近显示商户信息,在“BusinessPost”类中​​,“商务”关键字指向我的“商户”类的指针包含有关用户界面所需业务的其他信息。该查询如下所示:

override func queryForTable() -> PFQuery! { 
var getPosts = PFQuery(className: self.parseClassName) 
var getBusinesses = PFQuery(className: "Businesses") 

if locationUpdated == false { 
    return nil 
} 
else { 
     getBusinesses.whereKey("City", equalTo: self.city) 
     getBusinesses.whereKey("State", equalTo: self.state) 
     getPosts.whereKey("Business", matchesQuery: getBusinesses) 
     getPosts.includeKey("Business") 


self.tableView.hidden = false 
self.tableView.reloadData() 
return getPosts 
} 

希望这可以帮助其他人希望用Parse和Swift完成类似的查询。

+0

感谢您分享此内容。我制作了一些时髦的阵列,这些阵列花了我几天的时间才把这些做了三行。 – Pippo 2017-01-09 07:01:55

相关问题