2

tableDataというNSArrayに読み込まれ、UITableに表示されたJSONフィードの結果を検索しようとしています。

searchResultsNSArrayが.hファイルとして宣言されています。問題は、現時点ではsearchResultsが空であり、コンソールに何も出力しないことです。理由はわかりません...

何か足りないものがあるのか​​しら

searchResults = [tableData filteredArrayUsingPredicate:resultPredicate];

以下のコード行

助けてくれてありがとう。

- (void)filterContentForSearchText:(NSString*)searchText scope:(NSString*)scope
{
    NSPredicate *resultPredicate = [NSPredicate
                                    predicateWithFormat:@"SELF contains[cd] %@",
                                    searchText];

    searchResults = [tableData filteredArrayUsingPredicate:resultPredicate];

    NSLog(@"searchResults: %@", searchResults);

    NSLog(@"tableData results: %@", tableData);

}
4

2 に答える 2

2

辞書で「cat」というフィールドを探している場合は、述語をSELFで検索する代わりに、SELF.catで検索する必要があります。

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF.cat CONTAINS[cd] %@", searchText];

それでもオブジェクトに含まれる他のフィールドをチェックする必要がある場合は、複合述語を作成できます。述語の詳細については、Appleの述語プログラミングガイドを参照してください。

于 2012-11-06T15:49:59.020 に答える
0

[cd]-> [c]を置き換えてみてください:

NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"self.youProperty contains[c] %@", searchString];

like [cd]は、「大文字と小文字および発音区別符号に依存しないlike」を意味します。</ p>

于 2014-02-05T15:45:12.007 に答える