2015-08-21 26 views
0

我做了很多querys,搜索網站,並且之前已經問過這個問題,我沒有找到一個好的答案!swift解析查詢得到最後createdAt對象

我解析後端看起來是這樣的: enter image description here

在我的視圖控制器我只是想表明最後createdAt爲每個發件人 我想最後一個對象的所有行發件人:。

所以我們應該忽略「name1:Hello」和「name2:真的什麼時候..」,因爲這個舊的行我們已經有了新的對象。

我想要一個結果爲每個發件人取決於createdAt

所以我得到的查詢幫助做到這一點?或者我們該怎麼做?

let query = PFQuery(className: "test") 
     query.whereKey("receivers", equalTo: PFUser.currentUser()!.username!) 
     query.orderByDescending("createdAt") 
     query.findObjectsInBackgroundWithBlock { 
      (objects, error) -> Void in 

      if error == nil { 

       // now what? I've done everything i could none worked fine 

我希望如果我能得到幫助,請幫助我,如果可以的話。

+1

不會你只是把從回來數組的第一個項目? (首先檢查長度是否大於零。) – Fattie

+0

@JoeBlow你好,你能告訴我示例代碼嗎? – Salah

+1

將用戶指針添加到他們發送的最後一條消息。 – Wain

回答

0

您的數據模型並不適合快速執行此操作。但是,如何設置數據模型取決於您的所有需求,而不僅僅是一個。

爲了簡單起見,您應該將User中的指針添加到Message中,並且每次用戶發送消息時都會設置該指針(它會替換舊指針)。

現在,您可以簡單地查詢User s,使用includeKey來獲取消息並顯示您的列表。

+0

嗨,我不知道如何使用戶指向消息,你能告訴我怎麼做的例子嗎?我會很感激 – Salah

+0

那麼如果有一個名稱只有誰收到消息的列?我想將最後發送給我的消息不發送給其他人 – Salah

+0

這正是我說數據模型需要由所有請求驅動的原因。爲此,你應該有另一個類,每個用戶指針和最後一個消息發送給另一個。查看解析文檔瞭解指針如何工作。 – Wain

1

你可以再補充一個limit到查詢..看到解析文檔..

let query = PFQuery(className: "test") 
    query.whereKey("receivers", equalTo: PFUser.currentUser()!.username!) 
    query.orderByDescending("createdAt") 
    query.limit = 1 
    query.findObjectsInBackgroundWithBlock { 
     (objects, error) -> Void in 

     if error == nil { 
+0

你好,這隻會給我一個結果!我希望每個不同的用戶名都有一個結果,所以如果有3個用戶,我會得到3個結果 – Salah