動的NSPredicatesを構築する必要があります。私は置換変数を適用できる文字列ファイルを使用するのが非常に便利だとわかりました。これが私がファイルで行ったことです。NSPredicateテンプレートの代替フィールド名
start<=$START AND end>=$END
、これはユーティリティメソッド内に存在するコード断片である:それはすべてが非常にうまく機能
-(NSPredicate*)predicateWithName:(NSString*)name andVariables:(NSDictionary*)dict {
NSURL *queryFile = [[NSBundle mainBundle] URLForResource:name withExtension:@"query"];
//...
NSString *query = [NSString stringWithContentsOfURL:queryFile encoding:NSStringEncodingConversionAllowLossy error:&err];
NSPredicate *predicate = [NSPredicate predicateWithFormat:query];
return [predicate predicateWithSubstitutionVariables:dict];
}
が、今、私はいくつかの条件Iに基づいて、動的にフィールドを追加することが必要で午前特定のフィールドを照会したいのですが、これを達成する方法を見つけることができません。クエリファイルは次のようになります。
start<=$START AND end>=$END AND $FIELD_NAME==1
$ FIELD_NAME名は引用符で置き換えられ、クエリは機能しません。私はキーに%Kを使うことができますが、辞書でこれを行う方法はないようです。
ありがとうございました