首页 > 解决方案 > 尝试在 Swift 4 中执行 NSPredicate 时获取“此类不符合键值编码”

问题描述

每当我尝试使用 NSPredicate 时,它​​都会出错:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序,原因:“[<Project.Object 0x7fc805c23770> valueForUndefinedKey:]:此类与键happyfacevalue 的键值编码不兼容。”

现在我无法弄清楚为什么它拒绝工作。我什至尝试使用@objc 初始化我想要的数组,但它仍然崩溃。

我知道过滤器功能非常简单,但我需要能够使用 NSCompoundPredicate。我不认为我可以使用过滤器功能达到我使用 NSCompoundPredicate 可以达到的详细搜索级别。

    let tempPredStr = model.selectionQueryArray[count + 1] + "==" + model.inputQueryArray[count + 1]

    let predicate = NSPredicate(format: tempPredStr, NSNumber(value: false))
    arrayOfPredicates.append(predicate)

    /*
    let predicateIsNumber = NSPredicate(format: "isStringOrNumber == %@", NSNumber(value: false))
    let predicateIsEnabled = NSPredicate(format: "isEnabled == %@", NSNumber(value: true))
     */
    count = count + 1
}

let andPredicate = NSCompoundPredicate(type: .and, subpredicates: arrayOfPredicates)

let filteredArray = (predicateArray as NSArray).filtered(using: andPredicate)

我希望它只使用预先构建的谓词进行谓词并生成对象数组。

标签: swiftnspredicate

解决方案


推荐阅读