gpt4 book ai didi

objective-c - 核心数据关系故障: null key

转载 作者:行者123 更新时间:2023-12-04 02:43:12 24 4
gpt4 key购买 nike

我有一个名为 Person 的实体,它可能有一个家,还有一个名为 Home 的实体,它可能有一个到 N 个家:

enter image description here

然后我有两个数组 Controller :

  1. Homes Controller,与托管对象上下文绑定(bind),实体模式:Home;
  2. People Controller,与托管对象上下文绑定(bind),实体模式:person。

我有一个基于单元格的 TableView ,与人员 Controller 绑定(bind)。我能够成功显示前三列(姓名、姓氏和年龄),但问题出在第 4 列:家庭姓名。在列有一个弹出按钮单元格,这些是绑定(bind):

  • 内容:Homes Controller.arrangedObjects;
  • 内容值:Homes Controller.arrangedObjects.name;
  • 所选对象:People Controller.home。

问题出现在运行时,当我尝试单击弹出按钮选择主页时:

enter image description here

就像你看到的而不是我看到的选择“核心数据关系错误”,如果我尝试通过单击菜单项来更改主页,我会看到控制台打印了很多代码,我只发布了最重要的行:

2012-11-04 01:47:45.181 Test[4390:303] [<NSManagedObject 0x100156e60> valueForUndefinedKey:]: the entity Home is not key value coding-compliant for the key "(null)".

在此之后应用程序卡住。

编辑:通过一些调试,我现在能够知道异常发生时对象的状态:

2012-11-09 02:42:02.495 Test[4650:303] <NSManagedObject: 0x100157460> (entity: Person; id: 0x10013d9d0 <x-coredata:///Person/t0182F6F4-9CCC-4F51-A82F-D00CE026DB752> ; data: {
age = 20;
home = "0x101953480 <x-coredata:///Home/t0182F6F4-9CCC-4F51-A82F-D00CE026DB753>";
name = "New Name";
surname = "New Surname";
})
2012-11-09 02:42:02.497 Test[4650:303] <NSManagedObject: 0x101953420> (entity: Home; id: 0x101953480 <x-coredata:///Home/t0182F6F4-9CCC-4F51-A82F-D00CE026DB753> ; data: {
name = "New Home";
people = (
"0x10013d9d0 <x-coredata:///Person/t0182F6F4-9CCC-4F51-A82F-D00CE026DB752>"
);

似乎值是规则的,没有 nil 键。我怀疑问题出在绑定(bind)上。

最佳答案

如果不了解您是如何从 Core Data 中获取对象及其关系,就很难说出实际发生了什么。

但是,仅仅因为您看到“故障”一词并不意味着确实存在问题。 Core Data Fault 仅意味着尚未将数据从存储中检索到托管对象上下文中。

故障非常方便。它们就像代表关系中对象的小 stub ,这样你就不会在内存中记太多。只有当您尝试访问对象时,它们才会被替换为实际对象。

参见 Core Data Relationship Fault以获得更多解释。

关于objective-c - 核心数据关系故障: null key,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13215035/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com