【发布时间】:2015-07-21 05:20:04
【问题描述】:
我正在使用 CloudKit,并希望根据字符串字段搜索记录。
Apple 文档说这是对记录字段进行标记化搜索的方法:
要对记录的字段执行标记化搜索,请使用特殊运算符 self。标记化搜索搜索启用了全文搜索的任何字段,默认情况下都是基于字符串的字段。清单 5 显示了一个在记录的字段中搜索标记字符串 bob 和 smith 的示例。出于搜索的目的,每个不同的单词都被视为一个单独的标记。比较不区分大小写和变音符号。这些标记字符串可以在单个字段或多个字段中找到,但所有标记都必须存在于记录中才能被视为匹配项。
清单 5:匹配包含标记化字符串的字段
NSPredicate predicate = nil; predicate = [NSPredicate predicateWithFormat:@"self contains 'bob smith'"];
当我为谓词输入这个确切的字符串时,我得到一个异常。
代码:
predicate = [NSPredicate predicateWithFormat:@"self contains 'bob smith'"];
query = [[CKQuery alloc] initWithRecordType:kCKRecord_Level predicate:predicate];
例外:
*** Terminating app due to uncaught exception 'CKException', reason: 'Unexpected expression: SELF CONTAINS "bob smith"'
有什么想法可能是错的吗?有没有人在那个谓词字符串和 CloudKit 上取得过任何成功?
【问题讨论】: