2017-12-18 8 views
0

コアデータのTransformable属性でフィルタリングを実行します。 Transformerの値は実際にはNSAttributedStringです。私は以下のような述語を設定しようとしました:コアデータ:TransformableでNSPredicateを使用するにはどうすればよいですか?

NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(attributedString CONTAINS[cd] %@), _searchString]; 

それは動作しませんでした。これは確かにString属性で動作します。

私は一日中それをgoogled、まだ運がありません。 誰かがそれを達成する方法を教えてもらえますか?ありがとう!

+0

私は 'CoreData'の' Transformer'に慣れていませんが、 'NSAttributedString'をCoreDataにどのように保存しましたか? 'somethingAsAttributedString.string CONTAINS [c] ...' – Larme

+0

[CoreDataにNSMutableAttributedStringを格納する簡単な方法]の可能な複製(https://stackoverflow.com/questions/20648398) /単純な方法 - 店 - nsmutableattributedstring-in-coredata) – djromero

答えて

1

コアデータのTransformer属性でフィルタリングを実行したいとします。

Core Dataの「変換可能」属性を意味する場合は、実際にはできません。変換された属性は、コアデータに格納されたときの単なるバイトの集合です。これは永続的なストア内の属性付き文字列ではなく、単なるゼロと値です。結果として、属性付き文字列の内容に基づいてフィルタリングすることはできません。

コアデータが文字列として保存されるため、文字列が機能します。しかし、変形可能な属性はそのようには機能しません。この属性で使用できる唯一の述部は、ゼロ値または非ゼロ値を検査する述部です。

+0

ありがとうございました。リッチテキストコンテンツをCore Dataに 'Transformable'属性として保存しています。ユーザが入力したキーワードでリッチテキストコンテンツをフィルタリングしたいのです。回避策はありますか? – steveluoxin

+0

変形可能ではありません。 –

関連する問題