PFQuery 返回空白查询
PFQuery returning blank query
我正在尝试 运行 将填充自定义结构数组的 PFQuery。
一切看起来都很好,但是当我 运行 代码查询 returned 是空的。我还使用 PFUser.Query 尝试了此操作,但它没有 return objectId 的值,因此尝试改为查询 class。
这是我的资料:
var parseUsers:[ParseUsers] = []
var allUsers:[PFObject] = []
let query = PFQuery(className:"User")
let currentUser = PFUser.current()
query.whereKey("username", notEqualTo: currentUser?.username)
do {
allUsers = try (query.findObjects())
for i in allUsers{
var pImage = UIImage()
if i["profileImage"] != nil{
let imageFile = i["profileImage"] as? PFFileObject
imageFile?.getDataInBackground { (imageData: Data?, error: Error?) in
if let error = error {
print(error.localizedDescription)
} else if let imageData = imageData {
pImage = UIImage(data:imageData)!
}
}
}
let currentUserInfo = ParseUsers(objectID:i["objectId"] as! String,
username:i["objectId"] as! String,
userWorkouts:i["userWorkouts"] as! [Dictionary<String, String>],
profileImage:pImage)
parseUsers.append(currentUserInfo)
}
} catch {
print("Error")
}
找到问题所在了!
以后遇到类似问题的朋友,在确定要查询的class时,需要在前面out _。在上面的例子中,它将是 let query = PFQuery(className:"_User")
.
奇怪,因为我在任何地方的解析文档中都看不到这一点。
如@William George 在 Querying subsection of Users 中所述,您可以了解如何在 _User
class.
上构建查询
A 下面是一个示例(直接从文档中提取):
var query = PFUser.query()
query.whereKey("gender", equalTo:"female")
var girls = query.findObjects()
您可以使用 PFUser
查询您的 Parse Server,就像使用 PFQuery
一样,但它只能在 _User
class.
上使用
我正在尝试 运行 将填充自定义结构数组的 PFQuery。
一切看起来都很好,但是当我 运行 代码查询 returned 是空的。我还使用 PFUser.Query 尝试了此操作,但它没有 return objectId 的值,因此尝试改为查询 class。
这是我的资料:
var parseUsers:[ParseUsers] = []
var allUsers:[PFObject] = []
let query = PFQuery(className:"User")
let currentUser = PFUser.current()
query.whereKey("username", notEqualTo: currentUser?.username)
do {
allUsers = try (query.findObjects())
for i in allUsers{
var pImage = UIImage()
if i["profileImage"] != nil{
let imageFile = i["profileImage"] as? PFFileObject
imageFile?.getDataInBackground { (imageData: Data?, error: Error?) in
if let error = error {
print(error.localizedDescription)
} else if let imageData = imageData {
pImage = UIImage(data:imageData)!
}
}
}
let currentUserInfo = ParseUsers(objectID:i["objectId"] as! String,
username:i["objectId"] as! String,
userWorkouts:i["userWorkouts"] as! [Dictionary<String, String>],
profileImage:pImage)
parseUsers.append(currentUserInfo)
}
} catch {
print("Error")
}
找到问题所在了!
以后遇到类似问题的朋友,在确定要查询的class时,需要在前面out _。在上面的例子中,它将是 let query = PFQuery(className:"_User")
.
奇怪,因为我在任何地方的解析文档中都看不到这一点。
如@William George 在 Querying subsection of Users 中所述,您可以了解如何在 _User
class.
A 下面是一个示例(直接从文档中提取):
var query = PFUser.query()
query.whereKey("gender", equalTo:"female")
var girls = query.findObjects()
您可以使用 PFUser
查询您的 Parse Server,就像使用 PFQuery
一样,但它只能在 _User
class.