Я пытаюсь написать запрос Swift, который получит объект в таблице Avatar, который соответствует столбцу указателя аватара пользователя. Следующий запрос не тянет никаких результатов:найти объекты Parse, соответствующие значению указателя?
var userAvatar = self.user["avatar"]
let avatarQuery = PFQuery(className: "Avatar")
avatarQuery.whereKey("objectId", equalTo: userAvatar)
avatarQuery.limit = 1
avatarQuery.findObjectsInBackgroundWithBlock{
(results: [PFObject]?, error: NSError?) -> Void in
if error != nil {
print(error)
} else if let results = results as? [PFObject]! {
for result in results {
Я думаю, что проблема в том, что whereKey положение ищет строку, но userAvatar является PFObject. Я попытался преобразовать PFObject в String, но это невозможно.
Я переусердствовал это? Как я могу просто получить объект Avatar, который соответствует PFObject, сохраненному в User -> avatar (Pointer)?
Спасибо!
EDIT: Благодаря Даниилу, это рабочий код (я думаю, добавив includeKey, возможно, помогло тоже):
let userAvatar = self.user["avatar"] as! PFObject
let avatarQuery = PFQuery(className: "Avatar")
avatarQuery.whereKey("objectId", equalTo: userAvatar.objectId!)
avatarQuery.includeKey("avatar")
avatarQuery.limit = 1
avatarQuery.findObjectsInBackgroundWithBlock{
(results: [PFObject]?, error: NSError?) -> Void in
if error != nil {
print(error)
} else if let results = results as? [PFObject]! {
for result in results {
Спасибо за ответ! Как мне это сделать? 'avatarQuery.whereKey (" objectId ", equalTo: userAvatar.objectId)' не работает, потому что 'equalTo' должен быть AnyObject – winston
, вы можете принудительно отбросить его в anyObject с помощью' AnyObject (userAvatar.objectId) ' –
' avatarQuery .whereKey ("objectId", equalTo: userAvatar.objectId) 'может помочь –