あきらめる。文字列に別の文字列が含まれているかどうかを確認するために、想像できるすべての組み合わせを試しました。これが私がやりたいことを説明する直感的な構文の例です:
NSPredicate* pPredicate = [NSPredicate predicateWithFormat:@"NOT (%K CONTAINS[c] %@)",
NSMetadataItemFSNameKey,
[NSString stringWithFormat:@"Some String"]];
NOTをどのようにシフトするかに関係なく、!を使用します。代わりに、演算子をシフトするか、括弧を完全に削除すると、この式を解析するときに常に例外が発生します。
この表現の何が問題になっていますか?
編集:私が呼び出すと例外が発生します
[pMetadataQuery setPredicate:pPredicate];
例外は次のとおりです。 *キャッチされなかった例外によるアプリの終了'NSInvalidArgumentException'、理由:'NSMetadataQueryに指定された不明なタイプのNSComparisonPredicate(kMDItemFSName CONTAINS [c] "Some String")'