Ios 领域不支持NSDiacriticInsensitivePredicateOption

Ios 领域不支持NSDiacriticInsensitivePredicateOption,ios,objective-c,nsstring,realm,Ios,Objective C,Nsstring,Realm,我有一个DictObject,其文本属性包含一些越南语字母,例如“S”ống” 我想使用BEGINSWITH[cd]执行不区分重音的搜索,但Realm目前不支持它: RLMResults *fetchedResults = [DictObj objectsInRealm:realm where:@"text BEGINSWITH[cd] %@",inputText]; 我可以使用KCFStringTransferorMSTripDiacritics来转换输入文本,但当字符串已存储在领域文件中时

我有一个
DictObject
,其文本属性包含一些越南语字母,例如“S”ống”

我想使用
BEGINSWITH[cd]
执行不区分重音的搜索,但Realm目前不支持它:

RLMResults *fetchedResults = [DictObj objectsInRealm:realm where:@"text BEGINSWITH[cd] %@",inputText];
我可以使用
KCFStringTransferorMSTripDiacritics
来转换输入文本,但当字符串已存储在领域文件中时,我不知道如何执行该字符串转换。

在大多数字符串操作中添加了对不区分变音符号修饰符的支持。除了像
这样的
之外,所有受支持的字符串比较运算符现在都支持
[d]
修饰符


请注意,在执行不区分重音的比较时存在性能折衷。若您正在进行非常频繁的查找,那个么最好预先计算一个去掉变音符号的字符串版本,并将其存储在模型的第二个属性中。然后,您可以在查询中使用无变音符号属性,同时继续使用原始属性进行显示。如果您的领域中存储了现有数据,您可以将额外的属性添加到您的类中,并为现有对象填充它。

这不是一种有效的方法,但似乎没有比这更好的方法,除非领域团队添加它。谢谢添加支持作为的一部分进行跟踪。支持在领域Objective-C和Swift v2.5.0中发布。
RLMResults *fetchedResults = [DictObj objectsInRealm:realm where:@"text BEGINSWITH[cd] %@",inputText];