ios - 在 iOS 中从解析中检索对象的奇怪行为

标签 ios swift parse-platform pfquery

我在使用查询检索关系中的对象时遇到问题。我尝试简化为一个淡化的示例,并能够使用 ParentChild 类进行重现。

首先,我保存一个带有 2 个子对象的 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;
}])

然后突然间,在没有任何更改的情况下,我开始只为 children 取回一个 objectIds 数组:

result: Optional([<Parent: 0x7fa43356ae70, objectId: JzOgNq6Y2K, localId: (null)> {
children =     (
            {
        objectId = W3XflnNQupF;
    },
            {
        objectId = dI6Ky5n7lm;
    }
);
name = Parent1;
}])

我还尝试使用 query.includeKey("children") 进行查询,但这没有改变任何内容。非常感谢这里的任何帮助。我一定错过了一些明显的东西。我认为 Parse 会让事情变得更容易。相反,我在看似简单的事情上浪费了大量时间。

最佳答案

Parent 类的名称更改为其他名称使一切重新开始工作。

关于ios - 在 iOS 中从解析中检索对象的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34499503/

相关文章:

ios - 如何使用 NotificationCenter UIApplicationDidBecomeActiveNotification 重新加载我的 RSS Feed

ios - view 和 view.layer 之间的关系是什么?

ios - 如何在 Swift 中引用 UITextField 的文本?

ios - 尝试在 Parse 中查询对象

javascript - Evernote OAuth 登录 Javascript

ios - 自定义 NSError 代码

ios - 像 WhatsApp 一样将标题和副标题设置为导航

ios - Cocoapods 安装,然后是 "linker command failed with exit code 1 "

ios - 将 objective-c 插件添加到 swift 项目

ios - 解析 Facebook 登录/注册不起作用(Swift)