2015-02-23 64 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

相關問題