2011-08-14 6 views
4

これは多少うまく機能する述語です。NSPredicateを文字列で照合する

NSPredicate *filter = [NSPredicate predicateWithFormat:@"code contains[cd] %@", predicateFilter];

predicateFilterが112であれば、これはそれで112を持っているすべてのcodeを検索します。代わりに112で始まるすべてのコードを見つける必要があります。

編集:

私はこの述語を持って、どのように私はそれPredicateFilterEndで始まるpredicateFilterStartで始まり、コードとコードの間にあるので、そのコードすることができますか?

NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:@"ANY code BETWEEN %@", 
        [NSArray arrayWithObjects: 
         [NSExpression expressionForConstantValue: [NSNumber numberWithFloat: [self.predicateFilterStart floatValue]]], 
         [NSExpression expressionForConstantValue: [NSNumber numberWithFloat: [self.predicateFilterEnd floatValue]]], 
         nil]]; 

答えて

8
NSPredicate *filter = [NSPredicate predicateWithFormat:@"code beginswith[cd] %@", predicateFilter]; 

Predicate Programming Guide

+0

おかげで、あなたはあまりにも更新され、質問を確認することができますか? –

+0

ありがとうございましたが、それは私が探していたものではありませんでした。私は、 'predicateFilter'(20など)と' predicateFilterEnd'(30など)で始まるコードに合ったコードを探したいと思います。したがって、20と30で始まるコード間のコード、つまり25.5などの任意のコード –

+0

その述語NSLogsは 'BEGINSWITH [cd] 'をコード化します18" ANDコードENDSWITH [cd] "20" '、何かが必要ですコードBETWEEN(コードBEGINSWITH [CD] "18" ANDコードBEGINSWITH [CD] "20") 'または何かのようなものです。 –

関連する問題