1

私のアプリケーションではNSPredicate、iPhoneのアドレスブックからのデータで満たされた配列をフィルタリングするために使用しています。

配列内のすべての人について、、、、およびを取得し、firstName検索文字列に基づいて配列をフィルタリングします。lastNameemailnickName

そのための述語を作成しましたsearchStringが、なんらかの理由で理解できず、アプリがクラッシュしています。

私は述語に不慣れで、どこが間違っているのか理解できません。私のコードは「beginswith」ではなく「contains」で正常に機能していましたか?

これが私のアプリをクラッシュさせるコードスニペットです、

NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:
                                            @"(firstName beginswith[cd] %@) OR (lastName beginswith[cd] %@) OR (nickName beginswith[cd] %@) OR (email beginswith[cd] %@)",
                                            searchTextComponent,searchTextComponent,searchTextComponent];
4

1 に答える 1

0

4つの"%@"と3つの引数しかありません。

NSPredicate *filterPredicate = [NSPredicate predicateWithFormat:
                                            @"(firstName beginswith[cd] %@) OR (lastName beginswith[cd] %@) OR (nickName beginswith[cd] %@) OR (email beginswith[cd] %@)",
                                            searchTextComponent,searchTextComponent,searchTextComponent, SEARCHTEXTCOMPONENT ONE MORE TIME];
于 2012-08-13T09:56:05.187 に答える