好吧,我开始在这里头疼了...一旦我的用户登录到我的应用程序,我就会在解析时创建一个名为 PFUser.Current()?.objectId!
的新类在这个类中,我存储了所有用户信息,并且用户可以从任何设备访问它,因为他的用户 ID 永远不会改变。我在用户类中存储的内容之一是一个数组,这让我想到了我的问题:我希望能够访问这个数组,但实现这一点的唯一方法是使用:
var query = PFQuery(className: "\(PFUser.current()?.objectId!)") // Calling the user class
query.getObjectInBackground(withId: "") { (object: PFObject?, error: Error?) in
if error != nil {
print(error)
} else {
print(object)
}
}
问题是我不知道如何从 UserObjectID 类中检索 objectID。
我找到了一些代码,可以让我检索用户列表并将用户名和 ID 附加到数组中:
var query = PFUser.query()
query?.findObjectsInBackground { (objects, error) in
if let users = objects {
for object in users {
if let user = object as? PFUser {
self.usernames.append(user.username!)
self.userids.append(user.objectId!)
}
}
}
}
我如何进行类似的搜索,并找到我的个人 userClass 而不是 superUser 类中的所有 objectID?
最佳答案
您确定要为每个用户创建一个新类别吗?你最终会得到大量的表,每张表有 1 行。最好将数组添加为当前 _User 表中的列,或者创建一个新表并使用指针在其中保存所有用户数组。
话虽如此,如果您的新表是根据用户的 objectId 命名的,那么您应该能够使用以下命令查询该类:
var userId: String = ""
let userClassName = PFUser.current()!.objectId!
let query = PFQuery(className: userClassName)
// as there is only 1 row get the first
query.getFirstObjectInBackground { (object, error) in
if error != nil || object == nil {
print("nothing here try again")
} else {
userId = object?.objectId
}
}
如果您有一个包含许多用户和指针的表,请使用以下几行作为指导
let userObjectId = PFUser.current()!.objectId!
query.whereKey("yourPointerName", equalTo: PFObject(outDataWithClassName: "theClassYouWantToQuery", objectId: userObjectId))
关于arrays - 如何使用 swift 从解析服务器上的类中检索 objectID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41464934/