gpt4 book ai didi

ios - NSPredicate & Parse 让它从数组中返回与当前用户匹配的结果,以及用户名字符串

转载 作者:行者123 更新时间:2023-11-30 14:18:21 25 4
gpt4 key购买 nike

基本上,我正在开发一个聊天应用程序。为了从解析中检索“房间”对象,我使用如下查询:

func loadData(){

rooms = [PFObject]()
users = [PFUser]()

self.tableView.reloadData()

let pred = NSPredicate(format: "user1 = %@ OR user2 = %@", PFUser.currentUser()!, PFUser.currentUser()!)
let roomQuery = PFQuery(className: "Room", predicate: pred)

roomQuery.orderByDescending("lastUpdate")
roomQuery.includeKey("user1")
roomQuery.includeKey("user2")

roomQuery.findObjectsInBackgroundWithBlock { (results, error) -> Void in
if error == nil {

self.rooms = results as! [PFObject]

for room in self.rooms {
let user1 = room.objectForKey("user1") as! PFUser
let user2 = room["user2"] as! PFUser

if user1.objectId != PFUser.currentUser()!.objectId {
self.users.append(user1)
}

if user2.objectId != PFUser.currentUser()!.objectId {
self.users.append(user2)
}
}

self.tableView.reloadData()
}
}

}

现在,在查找当前用户所属的任何房间时,此功能运行良好。我想做的是在应用程序的某个地方,我还有一个用户名数组(字符串类型)。

所以问题是:如何使用上面的 NSPredicate,以确保返回的 results/PFObject 也能匹配中的任何用户名user1 或 user2 用户名的数组。

(基本上,这个想法是,该数组代表您的联系人,如果某人不再是您的联系人,您不应该再看到该房间)

请漂亮一点好吗? :<

最佳答案

您应该创建一个允许用户的数组,包括当前用户和所有其他用户 ID 的占位符对象(请参阅 objectWithoutDataWithClassName:objectId: )。然后在查询中使用该数组与 IN,而不是测试直接相等 (=)。

关于ios - NSPredicate & Parse 让它从数组中返回与当前用户匹配的结果,以及用户名字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30838227/

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