CDL和CDL在TOKENMATCHES[CDL]做些什么? [英] What's the "cdl" do in TOKENMATCHES[cdl]?

查看:15
本文介绍了CDL和CDL在TOKENMATCHES[CDL]做些什么?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在Introducing CloudKit的第31分钟遇到了TOKENMATCHES,我很好奇,所以我在谷歌上搜索了一下,在another StackOverflow post之外几乎找不到关于它的信息。

NSPredicate(format: "ALL tokenize(%@, 'Cdl') IN allTokens", "after session")

实际上,更令人困惑的是,该帖子使用的语法与WWDC视频不同:

NSPredicate(format: "allTokens TOKENMATCHES[cdl] %@", "bob smith")
根据我的理解,这些查询返回在一个或多个文本字段中包含所有标记化字符串参数的任何记录。后一种情况将获取具有person.name = "bob"person.last = "smith"的记录,以及例如person.note = "Bob likes Joseph Smith."的记录。(欢迎更正。)

综上所述,这个问题不是关于完整的谓词,而是cdl(或Cdl?)参数/修改器/无关紧要。

TL;DR-什么意思,还有其他值可以放在格式字符串"槽"中吗?


<;rant>predicate syntax documentation为什么不全面?这就好像苹果的经理们害怕NSPredicate这种神秘而古老的力量;没有人敢指派技术作家和工程师来让这个原本很简单的课程对我们其他人来说是™。在谷歌上搜索"nspredicate TOKENMATCHES"只能得到8个结果,这些结果都不在apple.com上。😠<;/ant>

推荐答案

至少找到了!

文档:NSComparisonPredicateOptions

typedef enum NSComparisonPredicateOptions : NSUInteger {
    NSCaseInsensitivePredicateOption = 0x01,      //==> [c]
    NSDiacriticInsensitivePredicateOption = 0x02, //==> [d]
    NSNormalizedPredicateOption = 0x04            //==> [n]
} NSComparisonPredicateOptions;

+ NSLocaleSensitivePredicateOption                //==> [l]

所以基本上:
[c]:大写与小写相同(即:a==a)
[d]:带diacritics的字符(急性重音、塞迪拉等)与没有它的字符相同(即==a(重音)
[l]:它是针对本地化特性的。Apple示例使用德语"Double s"(Eszett)作为示例,其中包含"straúe"和"Strasse"。

这篇关于CDL和CDL在TOKENMATCHES[CDL]做些什么?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆