У меня проблема с получением объектов в отношениях с помощью запросов. Я попытался упростить пример и смог воспроизвести его, используя классы Parent
и Child
.
Сначала я сохраняю объект Parent
с двумя дочерними элементами:
let child1: PFObject = PFObject(className: "Child")
child1["name"] = "Child1"
let child2: PFObject = PFObject(className: "Child")
child2["name"] = "Child2"
let parent: PFObject = PFObject(className: "Parent")
parent["name"] = "Parent1"
parent.addObject(child1, forKey: "children")
parent.addObject(child2, forKey: "children")
parent.saveInBackgroundWithBlock { (success, error) -> Void in
print("success: \(success)")
}
Теперь, когда приложение запускается и в Parse есть фактические данные, я пытаюсь получить их с помощью PFQuery
:
let query: PFQuery = PFQuery(className: "Parent")
query.findObjectsInBackgroundWithBlock { (result, error) -> Void in
print("result: \(result)")
}
Первые несколько раз, когда я запускал, результат печати дал мне что-то вроде этого:
result: Optional([<Parent: 0x7fa43356ae70, objectId: JzOgNq6Y2K, localId: (null)> {
children = (
{
<Child: objectId: 98dfjhwejf, blah blah...>
},
{
<Child: objectId: 34763kKJHF, blah blah...>
}
);
name = Parent1;
}])
Потом вдруг, вообще ничего не меняя, я начал получать только массив objectIds
для children
:
result: Optional([<Parent: 0x7fa43356ae70, objectId: JzOgNq6Y2K, localId: (null)> {
children = (
{
objectId = W3XflnNQupF;
},
{
objectId = dI6Ky5n7lm;
}
);
name = Parent1;
}])
Я также пытался использовать query.includeKey("children")
для запроса, но это ничего не изменило. Любая помощь здесь очень ценится. Должно быть, я упускаю что-то очевидное. Я думал, что Parse упростит задачу. Вместо этого я трачу кучу времени на то, что кажется таким простым.