Iphone 实体仍然不符合密钥的键值编码,即使在重新启动我的dev Mac之后也是如此

Iphone 实体仍然不符合密钥的键值编码,即使在重新启动我的dev Mac之后也是如此,iphone,ios,cocoa-touch,core-data,Iphone,Ios,Cocoa Touch,Core Data,这是我编写的代码,用于将日期作为字符串保存到我的核心数据模型中。我创建了一个实体。目标“Goal”包含属性“goalText(String)”、“dateStr(String)”和“dateOne(String)”。 当要编辑数据时,if条件起作用,否则else条件起作用。这就是流程。 因此,当我执行这段代码时,我得到的错误是“[setValue:forUndefinedKey:]:实体目标与键“dateOne”的键值编码不兼容”。前两个属性已成功保存和获取。。还有一件事是,第三个属性是从不同的

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


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

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

与问题中解释的情况基本相同:


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

我已经解决了。在某个阶段,我删除了name.xcdatamodel并创建了一个同名的新模型。但我的项目中仍然保留着旧的一个。删除那个旧的解决了我的问题。谢谢你的帮助

这篇文章可能已经晚了。但希望它能帮助一些人


我最近犯了这个错误。对我来说,在更改Xcdatamodel时,我丢失了钥匙。我在实体中添加了密钥。那么它工作正常。

如果目标是实体名称,那么为什么在查询中使用“Rem”作为实体名称?@RajanBalana抱歉..这只是一个错误,而不是在我的实际代码中..这很可能是日期格式化程序的问题,我想您从dateformatter得到的是NULL,请您使用NSLog检查dt1的值=[form stringFromDate:[datePicker date]];不,该值不为空。我得到了正确的值。您有不同的模型版本吗?@J M我在问题中提到了该链接。我已重新启动Mac,清理它,删除旧数据模型并创建了一个新模型。没有更改。。
    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"];
    }