Ios NSPredicate和CoreData密钥编码符合性问题

Ios NSPredicate和CoreData密钥编码符合性问题,ios,swift,core-data,Ios,Swift,Core Data,我试图通过CoreData筛选匹配的名称,如果存在,则忽略它,或者将新名称添加到Core Data。我遇到的问题应该很简单,但我不能完全弄明白 我的coredata中的值是String类型的“trackName”,但我一直得到以下异常: 由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合key trackName的键值编码。” 我应该如何进行?是否不清楚提取请求是针对字符串的?您正在对NSFetchR

我试图通过CoreData筛选匹配的名称,如果存在,则忽略它,或者将新名称添加到Core Data。我遇到的问题应该很简单,但我不能完全弄明白

我的coredata中的值是String类型的“trackName”,但我一直得到以下异常:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[valueForUndefinedKey:]:此类不符合key trackName的键值编码。”


我应该如何进行?是否不清楚提取请求是针对字符串的?

您正在对
NSFetchRequest
的实例调用
value(forKey:)
,但该键仅为表示
跟踪
实体的
NSManagedObject
实例定义


获取请求是表示核心数据查询的对象。根据您的代码,我假设您正在尝试确保
trackName
属性在所有
Track
实体中都是唯一的。您需要
execute()
获取请求并检查以确保该方法返回的数组为空

请将您的代码更新到此代码,然后重试

if result == nil {
   //result is null because you entered string is not found the valueForkey is also not found in your result
    print("new entry")
}else{
    print("added")
}

不要张贴图片。邮政编码!解决方案非常简单,但没有人愿意从截图中重新键入代码。感谢您的反馈!下次我(不可避免地)请求更多帮助时,我会发布代码hahaThanks@Davewston,这真的很有帮助。你是对的,我试图确保如果“trackName”已经存在,我没有输入重复的轨迹实体。因为我不熟悉核心数据(老实说,通常是编码),所以我不清楚如何访问查询中检索到的位