gpt4 book ai didi

ios - CKQuery 使用 NSPredicate 搜索 NIL 总是抛出 Invalid Expression 错误

转载 作者:行者123 更新时间:2023-11-28 21:20:27 25 4
gpt4 key购买 nike

在 iOS 10.0.1 和 Xcode 8.0 上,我有一个 CKQuery 成功返回各种条件下的数据(BEGINSWITH 和等于某些字符串等。 ).现在,我正在专门查找其中一个字段中具有空值的记录。

根据 Apple's Docs , 加上 How do I set up a NSPredicate to look for objects that have a nil attributeNSPredicate with boolean is not comparing a boolean to NO , 以下语法应搜索 nil 值:

NSPredicate *searchConditions = [NSPredicate predicateWithFormat:@"joiner = nil "];
CKQuery *query = [[CKQuery alloc] initWithRecordType:@"availableURLs"
predicate:searchConditions];

当我设置断点并检查 searchConditions 时,它的计算结果为 joiner == nil。当我尝试使用它时,第二行抛出异常:

Terminating app due to uncaught exception 'CKException', reason: 
'Invalid predicate: joiner == nil (Error Domain=CKErrorDomain Code=12
"Invalid right expression in <joiner == nil>: <nil> is not a function expression"
UserInfo={ck_isComparisonError=true,
NSLocalizedDescription=Invalid right expression in <joiner == nil>: <nil> is not a function expression,
NSUnderlyingError=0x1706516d0 {Error Domain=CKErrorDomain Code=12 "<nil> is not a function expression"
UserInfo={NSLocalizedDescription=<nil> is not a function expression, ck_isComparisonError=true}}})'

我已经尝试了 ===nilNil 的所有组合NILNULL。所有评估为 joiner == nil 并抛出异常。

在第一个链接问题中,OP 使用 predicateWithSubstitutionVariables 替换 [NSNull null]。我也尝试过,但它再次评估为 joiner == nil 并抛出相同的异常。

Apple Docs 有一个专门关于搜索 nil 的部分,我看不出他们的示例与我的示例有何不同:

predicate = [NSPredicate predicateWithFormat:@"firstName = nil"];

我在这里错过了什么?

最佳答案

根据 CKQuery doc ,似乎 CKQuery 不允许在谓词中使用 nil(在编写答案时在 iOS 10 中)。

Building Your Predicates
An NSPredicate object defines the logical conditions for determining whether a record is a match for a query. The CKQuery class supports only a subset of the predicate behaviors offered by the full NSPredicate class.

您的 NSPredicate 构造似乎没有错,因为它可以在自定义对象的 NSArray 上工作。

关于ios - CKQuery 使用 NSPredicate 搜索 NIL 总是抛出 Invalid Expression 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39970928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com