Core data 核心数据:如何在Transformable上使用NSPredicate?

Core data 核心数据:如何在Transformable上使用NSPredicate?,core-data,nspredicate,Core Data,Nspredicate,我想对核心数据上的可转换属性执行过滤。Transformer值实际上是一个nsattributed字符串。我尝试设置一个谓词,如下所示: NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(attributedString CONTAINS[cd] %@), _searchString]; 它不起作用。它肯定与字符串属性一起起作用 我已经在谷歌上搜索了一整天,但运气不好有人能告诉我如何做到这一点吗?谢谢 我想对核心数据的Tr

我想对核心数据上的
可转换
属性执行过滤。
Transformer
值实际上是一个
nsattributed字符串
。我尝试设置一个谓词,如下所示:

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(attributedString CONTAINS[cd] %@), _searchString];
它不起作用。它肯定与
字符串
属性一起起作用

我已经在谷歌上搜索了一整天,但运气不好有人能告诉我如何做到这一点吗?谢谢

我想对核心数据的
Transformer
属性执行过滤

如果您指的是核心数据的“可转换”属性,那么您真的不能这样做。转换的属性只是存储在核心数据中的字节集合。在持久性存储中,它不是一个属性字符串——它只是一和零。因此,您无法基于属性字符串内容进行筛选


字符串之所以有效,是因为核心数据将其保存为字符串。但可转换属性不是这样工作的。此属性唯一可以使用的谓词是检查nil或非nil值的谓词。

在您的情况下,可以做的一件事是稍微反规范化数据,并将属性字符串的字符串值添加为附加属性,您可以使用它进行过滤。

我不熟悉
CoreData
中的
Transformer
,但如何将
nsattributed字符串保存到CoreData中?您可能需要执行“反向”操作来过滤它
somethingAsAttributedString.string包含[c]…
可能重复的谢谢,先生。我正在将富格文本内容保存到核心数据中,作为
可转换属性,我想通过用户输入的关键字过滤富格文本内容。是否有任何解决方法?不使用可转换的,否。或者将属性作为数据与字符串分开保存,然后在需要显示时将它们放在一起(如果存在存储问题)。