NSPredicate和CoreData密钥编码合规性问题

时间:2017-02-14 01:56:29

标签: ios swift core-data

我正在尝试通过我的CoreData过滤匹配的名称,如果存在则忽略它,或者将新名称添加到核心数据。我遇到的问题应该是一个简单的问题,但我无法弄明白。

here's a link to a shot of my code

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

由于未捕获的异常终止应用程序' NSUnknownKeyException',原因:' [valueForUndefinedKey:]:此类不是键值trackName的键值编码兼容。'

我该怎么办?是否不清楚获取请求是否为字符串?

2 个答案:

答案 0 :(得分:0)

您正在value(forKey:)的实例上调用NSFetchRequest,但该密钥仅针对代表您的NSManagedObject实体的Track个实例定义。

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

答案 1 :(得分:0)

请将您的代码更新为此代码并尝试

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")
}