swift分析查询不按升序返回对象
我的查询旨在获取由一定数量的用户创建的对象。以下是我的代码:swift分析查询不按升序返回对象,swift,parse-platform,tableview,Swift,Parse Platform,Tableview,我的查询旨在获取由一定数量的用户创建的对象。以下是我的代码: var dates = [NSDate]() var messages = [String]() let getUsersQuery = PFQuery(className: "followings") getUsersQuery.whereKey("follower", equalTo: PFUser.currentUser()!.objectId!) getFollowedUs
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()
})
}
}
}
})
以下是我在日志中打印日期时出现的情况:
但是,我的tableview中的内容不是按升序排列的。事实上,最近创建的帖子位于tableview的底部。我注意到的一件事是,某个特定用户的帖子似乎显示在一起。因此,无论其他用户是否创建了最新的帖子,一个用户的所有帖子都会显示在tableview的顶部。知道出了什么问题吗?谢谢 您需要的是一个嵌套查询。您试图获取的数组是一组帖子。因此,您的查询应该在post表上。(此外,您的表应称为
post
而不是posts
。表名应始终为单数。每个post称为post
而不是posts
)
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()
})
另外,您正在将日期和消息保存在单独的数组中。创建一个结构或具有日期和字符串的对象,并具有一个包含
Post
对象的数组。查看您的代码正在执行的操作。获得跟踪用户。对于第一个用户。获得帖子。将帖子添加到数组。对于第二个用户。获得帖子。将帖子添加到数组。对于第三个用户。等等当然,它会做你所说的。此外,你会在这里钉住设备的网络。你在设备上做了很多工作,可以推送到服务器上。