5

私のプロジェクトでは、エンティティに一連の属性があります。そのうちの1つは、文字列としてのパスです。パスのサブパスとして文字列を持つすべてのレコードが必要です。

例: パス: / var / mobile / Applications / C4ECC129-36D2-4428-8BB0-6B1F4C971FC1 / Library / Caches / Packages / 1000

Mystring:ライブラリ/キャッシュ/パッケージ/ 1000

Likeを使ってみましたが、以下のように含まれていますが失敗しました。

[NSPredicate predicateWithFormat:@"bookPath like[c] '%%%@'",Mystring];
[NSPredicate predicateWithFormat:@"bookPath Contains[cd] '%@'",Mystring];

mystringを含むレコードをフェッチするための述語を書くのを手伝ってくれる人はいますか?

本当に助かります。

事前にTnx

4

2 に答える 2

14

このような述語が必要です

[fecthRequest setPredicate:[NSPredicate predicateWithFormat:@"bookPath endswith[cd] %@", myString]];

またはこれ

[fecthRequest setPredicate:[NSPredicate predicateWithFormat:@"bookPath contains[cd] %@", myString]];

結果がないのは、を一重引用符で囲んだため%@です。ドキュメント(動的プロパティ名)から:

文字列変数は、%@を使用してフォーマット文字列に置換される場合、引用符で囲まれます。

述語については、探しているサブパスが常に元のパスの最後の部分にある場合は、最初の述語を使用することをお勧めします。

述語の使用については、文字列の比較を読むことをお勧めします。

お役に立てば幸いです。

于 2012-10-19T15:03:23.833 に答える
0

これを試して:

[NSPredicate predicateWithFormat:@"%K contains %@", @"bookPath", Mystring];
于 2012-10-19T14:50:08.860 に答える