2016-03-31 13 views
0

Sorgulam, belirli sayıda kullanıcı tarafından oluşturulan nesneleri getirmeyi amaçlıyor. Ben günlüğüne tarihleri ​​yazdırırkenhızlı ayrıştırma sorgusu nesneleri artan sırada iade etmiyor

var dates = [NSDate]() 
var messages = [String]() 

     let getUsersQuery = PFQuery(className: "followings") 

     getUsersQuery.whereKey("follower", equalTo: PFUser.currentUser()!.objectId!) 

     getFollowedUsersQuery.findObjectsInBackgroundWithBlock { (objects, error) -> Void in 

      if let objects = objects { 

       for object in objects { 

        let followedUser = object["followedUser"] as! String 

        let getPostsQuery = PFQuery(className: "posts") 

        getPostsQuery.whereKey("userId", equalTo: followedUser) 
        getPostsQuery.orderByDescending("updatedAt") 

        getPostsQuery.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in 

         if let objects = objects { 

          for post in objects { 

           self.dates.append(post.createdAt as NSDate!) 
           self.messages.append(post["message"] as! String) 
         } 

         print(self.dates) 

         self.myTableView.reloadData() 
        }) 
       } 
      } 
     } 
    }) 

İşte gelip ne::

enter image description here

Ancak benim tableview içeriği artan düzende değil şu benim kodlardır. Aslında en son oluşturulan posta, tablonun en altındadır. Fark ettiğim bir şey, belirli bir kullanıcının gönderilerinin birlikte gösterilmiş gibi görünmesi. Dolayısıyla, bir kullanıcının tüm yayınları, başka bir kullanıcının en yeni gönderiyi oluşturduğu fark etmeksizin, tablo görünümünün en üstünde görünecektir. Neyin yanlış gittiğine dair bir fikrin var mı? Teşekkürler!

+0

Kodunuzun ne olduğuna bakın. Aşağıdaki kullanıcıları alın.İlk kullanıcı için Mesaj alın.Sisteme mesaj ekleyin.İkinci kullanıcı için. Diziye gönderiler, üçüncü kullanıcı vb. için ... Tabii ki yaptığınız şeyi yapacaksınız.Ayrıca, devi ağlarını çivilemek ce burada. Aygıtta sunucuya itilebilecek çok fazla iş yapıyorsunuz. – Fogmeister

cevap

0

İhtiyacınız olan iç içe bir sorgudur. Almaya çalıştığınız dizi bir yazıdır. Bu yüzden sorgunuz posta tablosunda olmalıdır. (Ayrıca, masa çağrılmalıdır post değil posts. Tablo adları her zaman tekil olmalıdır. Her yayın bir posts bir post değil denir.

let postsQuery = PFQuery(className: "post") 
postsQuery.orderByDescending("updatedAt") 

let usersQuery = PFQuery(className: "following") 
usersQuery.whereKey("follower", equalTo:PFUser.currentUser()!.objectId!) 

// this might need to change depending on what the followed user is called in the `followings` table. 
postsQuery.whereKey("userId", matchesKey:"followed", inQuery:usersQuery) 

getPostsQuery.findObjectsInBackgroundWithBlock({ (objects, error) -> Void in 
    if let objects = objects { 

    for post in objects { 
     self.dates.append(post.createdAt as NSDate!) 
     self.messages.append(post["message"] as! String) 
    } 

    print(self.dates) 

    self.myTableView.reloadData() 
}) 

Ayrıca, ayrı diziler tarihleri ​​ve mesajları kaydediyorsunuz. Oluştur yapı veya bir tarih ve dize sahip bir dizi var ve nesnelerine sahip bir şey var

+1

çok teşekkürler! şimdi mükemmel çalışıyor! –