即使在重新启动我的开发 Mac 之后,实体仍然不符合键的键值编码

Posted

技术标签:

【中文标题】即使在重新启动我的开发 Mac 之后,实体仍然不符合键的键值编码【英文标题】:Entity is still not key value coding-compliant for the key, even after rebooting my dev Mac 【发布时间】:2013-02-04 08:04:30 【问题描述】:
    if (self.temp) 
    
    NSDateFormatter *form = [[NSDateFormatter alloc] init];
    [form setDateFormat:@"dd/MM/yyyy"];
    dt1 = [form stringFromDate:[datePicker date]];
    [self.temp setValue:dt1 forKey:@"dateOne"];
    
    else
    
    NSDateFormatter *form = [[NSDateFormatter alloc] init];
    [form setDateFormat:@"dd/MM/yyyy"];``
    dt1 = [form stringFromDate:[datePicker date]];
    NSManagedObject *newGoalText = [NSEntityDescription insertNewObjectForEntityForName:@"Goal" inManagedObjectContext:context];
    [newGoalText setValue:dt1 forKey:@"dateOne"];
        

这是我编写的代码,用于将日期作为字符串保存到我的核心数据模型中。我创建了一个实体。目标“Goal”包含属性“goalText(String)”、“dateStr(string)”和“dateOne(String)”。 当要编辑数据时,if 条件有效,否则 else 条件有效。那就是流量。 因此,当我执行此代码时,我收到错误为“[setValue:forUndefinedKey:]:实体目标不是键值编码兼容键“dateOne”。'”。不过,前两个属性已成功保存和获取。还有一件事是第三个属性是从不同的视图设置的。

我已经按照this other question 中的回答重新启动了 Mac,但没有得到任何结果。

【问题讨论】:

如果目标是实体名称,那么为什么在查询中将“Rem”作为实体名称? @RajanBalana 对不起..这是一个错误,只是在我的实际代码中没有.. 这很可能是日期格式化程序的问题,我认为你从日期格式化程序得到 NULL,你能用 NSLog 检查 dt1 的值 = [form stringFromDate:[datePicker date]]; 否,该值不为空。我得到了正确的值 你们有不同的型号版本吗? 【参考方案1】:

我已经解决了。在某个阶段,我删除了 name.xcdatamodel 并创建了一个具有相同名称的新模型。但是旧的一些仍然存在于我的项目中。删除那个旧的解决了我的问题。感谢您的帮助

【讨论】:

【参考方案2】:

不确定它是否会修复您的 pb,但我上次遇到此问题是因为捆绑包中的某个问题。 (当我在 coredata 模型上添加一个属性并从模型中重新生成类时发生)旧模型仍在使用中。

与问题中解释的几乎相同: Entity is not key value coding-compliant for the key

如果尚未完成,请尝试从组织者清除项目的派生数据。这对我有用。

【讨论】:

@J M 我在我的问题中提到了该链接。我已经重新启动 Mac,清理它,删除旧数据模型并创建一个新模型。没有变化..【参考方案3】:

可能这是迟到的帖子。但希望它会帮助一些人。

我最近收到此错误。对我来说,在更改 Xcdatamodel 时,我缺少钥匙。我在实体中添加了密钥。然后它工作正常。

【讨论】:

以上是关于即使在重新启动我的开发 Mac 之后,实体仍然不符合键的键值编码的主要内容,如果未能解决你的问题,请参考以下文章

为啥mac升级之后,升级成mac OS Sierra 10.12.1,我的parallels Desktop就启动不了,需要重新安装吗?

核心数据删除的项目即使在删除后仍然可见(直到应用重新启动)

iPhone 没有出现在 Safari 的“开发”菜单中

我的手机软件有开机自启动的程序都设置好了,为啥开机之后仍然不会自启动

iPhone没有出现在Safari的“开发”菜单中

iPod 设备在 Xcode 中无法识别