gpt4 book ai didi

我关注的用户的 Swift Parse 查询

转载 作者:行者123 更新时间:2023-11-28 15:01:21 25 4
gpt4 key购买 nike

我目前有一个查询,它返回我服务器上所有用户的表格,如果我关注他们,他们的名字旁边会有一个复选标记。这是代码:

//REFRESHER
func refresh() {

self.usernames.removeAll()
self.userIDs.removeAll()
self.isFollowing.removeAll()


let query = PFUser.query()

query?.findObjectsInBackground(block: { (objects, error) in

if error != nil {
print(error)

} else if let users = objects {

//self.usernames.removeAll()
//self.userIDs.removeAll()
//self.isFollowing.removeAll()

for object in users {

if let user = object as? PFUser {

if user.objectId != PFUser.current()?.objectId {

self.usernames.append(user.username!)
self.userIDs.append(user.objectId!)

let query = PFQuery(className: "Followers")

query.whereKey("follower", equalTo: PFUser.current()?.objectId)
query.whereKey("following", equalTo: user.objectId)

query.findObjectsInBackground(block: { (objects, error) in

if let objects = objects {

if objects.count > 0 {

self.isFollowing[user.objectId!] = true

} else {

self.isFollowing[user.objectId!] = false

}

if self.isFollowing.count == self.usernames.count {

self.tableview.reloadData()

self.refresher.endRefreshing()

}

}

})


}

}

}
//self.refresher.endRefreshing()

}


})

}

我试图返回一个只有我关注的用户的表,但是我似乎无法让它工作,因为我的关注者类在 PFUser 类之外,因此很难附加用户名和用户 ID Follower 类中的用户。

我的 Followers 类有四列,follower 和 following 是每个用户各自的用户 ID,然后是 followerUsername 和 followingUsername,它们是各自用户的用户名。对此的任何帮助将不胜感激。谢谢!

更新:我现在在 Parse 中使用指针来引用 followerfollowing,下面是我尝试查询我正在关注的用户的方式。此实现不起作用,所以如果有人能指出正确的方向,我将不胜感激!

     func refresh() {

self.usernames.removeAll()
self.userIDs.removeAll()
self.isFollowing.removeAll()


let query = PFQuery(className: "Followers")

query.includeKey("following")

query.whereKey("follower", equalTo: PFUser.current()?.objectId)


query.findObjectsInBackground(block: { (objects, error) in

if error != nil {
print(error)

} else if let following = objects {

for object in following {

if let usersFollowing = object as? PFObject {


self.usernames.append(usersFollowing["followingUsername"] as! String)
self.userIDs.append(usersFollowing["following"] as! String)


if let objects = objects {

if objects.count > 0 {


self.isFollowing[usersFollowing["following"] as! String] = true

} else {

self.isFollowing[usersFollowing["following"] as! String] = false

}

if self.isFollowing.count == self.usernames.count {

self.tableview.reloadData()

self.refresher.endRefreshing()

}
}
}

}
}
})
}

这是我的两张 table

userPost Table

Follower Table

最佳答案

您所拥有的嵌套查询和表重新加载的效率低得离谱……一旦您获得相当数量的用户,您就会执行太多查询并且很难刷新该表。

您想要一个只包含您当前用户关注的所有用户的表格吗?您的 Followers 表应该使用指针而不是对象 ID,那么您可以只使用 includeKeys查询方法让它获取 following Followers 的领域对象,并找到所有对象 follower等于当前用户。

有了 ID,您可以使用 Followers 执行 matchesKeyInQuery 方法查询哪里follower等于当前用户的ID,User查询有matchesKeyInQuery,key为objectId,queryKey为following,query为Follower查询。但是指针是连接表的正确方法,而不是存储 ID。

您还可以查看 Relations,它可能非常适合跟踪您关注的用户。

关于我关注的用户的 Swift Parse 查询,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48879865/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com