即使在重新启动我的开发 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就启动不了,需要重新安装吗?