2012-04-17 7 views
1

以下のコードを使用して、述語を使用して配列をフィルタリングしています。NSPredicate特殊文字を使用したフィルタリング

self.aPredicateString = [self.aPredicateString stringByAppendingString:[NSString stringWithFormat:@"%@ contains[cd] '%@'", self.selectedSearchParameter, self.searchString]]; 


NSLog(@"Predicate string %@",self.aPredicateString); 
     self.aPredicate = [NSPredicate predicateWithFormat:self.aPredicateString]; 

ユーザがエラーで\又は'コードクラッシュのいずれかを入力した場合。

私は間違いを理解していませんか?特殊文字はNSPredicateには使用できません。あるいは、別の方法で述語をフォーマットする必要があります。あなたはこのすべてself.aPredicateString stringByAppendingStringを使用する理由

+0

周りにいない''と私はあなたが持つべきとは思いません%@の回りに一重引用符を付けるとリテラルに変わります – rdelmar

+0

クラッシュレポートを提供できますか? –

答えて

6

私は、疑問に思うが、私が思うに、あなたの述語は次のようになります。

self.aPredicate = [NSPredicate predicateWithFormat:@"%@ contains[cd] %@", self.selectedSearchParameter, self.searchString]]; 

%@

+0

self.aPredicateString = [self.aPredicateString stringByAppendingString:[NSString stringWithFormat:@ "AND%@ contains [cd] '%@'"、self.selectedSearchParameter、self.searchString]];私が使用している実際の声明はこのように見えます。私は、文字列を既存の文字列に追加し、述語を作成する必要があります。ステートメント内のANDの前に、私が使用している述語条件がもう1つあります。 – steja

+1

私も引用符なしで試したことがあります。それでもアプリケーションがクラッシュしました@ rdelmar – steja

+0

あなたは解決策を見つけましたか? – Chuck

関連する問題