使用 CloudKit.js,如何构建匹配字段为零的项目的查询?我尝试过的每个排列都会失败 - 要么它明显匹配字符串值(即“null”或“nil”),要么如果我实际上尝试传递“null”,它会抛出错误。
有任何想法吗?以下均无效。
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: "nil" }
}]
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: null }
}]
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: "null" }
}]
filterBy: [{
fieldName: 'customerNumber',
comparator: 'EQUALS',
fieldValue: { value: "" }
}]
我认为 CloudKit 中没有任何选项可以查询 nil 值。也不是来自本机代码。我尝试了很多谓词,但似乎不起作用。
您必须知道 CloudKit 是一个键值存储。当值为 nil 时,键将不会出现在记录中。没有选项可以查询不存在的键。
我最接近的一个好的解决方案是使用具有以下格式的谓词"NOT myField => ''"
抱歉,不知道 .js 的格式
In the CloudKit CKQuery 文档 https://developer.apple.com/library/prerelease/ios/documentation/CloudKit/Reference/CKQuery_class/没有提到任何关于 nil 字段的内容。
In the NSPredicates 的文档 https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/Predicates/Articles/pUsing.html有 nil 值的样本。
但很明显,CloudKit 只实现了 NSPredicate 的一部分可能性(请参阅 CKQuery 类参考)
我认为处理这个问题的最佳方法是不使用/依赖 nil 值。如果您确实需要检查某些 nil 状态,那么您可以添加一个额外的字段来表示该状态。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)