0
における複数任意の値を持つNSCompoundPredicateためにIは、基地述語「predは」と1つのオプション述語「fieldQuery」は、Objective-Cの
NSArray *predArray = (fieldQuery != nil) ? @[pred, rangeQuery, fieldQuery] : @[pred,rangeQuery];
Iを許可したい両方「fieldQuery」とCoreDataクエリを持っているにNSArrayおよび 'rangeQuery'はオプションです。私はそれがこのように作業があります。
NSArray *predArray;
if (rangeQuery != nil) {
predArray = (fieldQuery != nil) ? @[pred, rangeQuery, fieldQuery] : @[pred,rangeQuery];
} else {
predArray = (fieldQuery != nil) ? @[pred, fieldQuery] : @[pred];
}
NSPredicate *compoundPred = [NSCompoundPredicate andPredicateWithSubpredicates:predArray];
をしかし、これは簡潔に、クリーン明確ではないが、配列はNSArrayのではなくNSMutable配列にする必要があるので、それはこの方法を行っています。これを行うより良い方法を提案できますか?
ありがとうございました!私はNSArrayでこれを行うことができたことを認識していない、このアプローチを取るためにNSMutableArrayである必要があると思った。 –