好吧,所以我开始在这里开始头疼...一旦我的用户登录我的应用程序,我创建一个名为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中找到所有的objectID而不是superUser类?
答案 0 :(得分:0)
您确定要为每个用户创建一个新类吗?你最终会得到大量的桌子,每个桌子各占一排。最好将数组作为当前_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))