0

私は最初の本格的な iPhone アプリに取り組んでおり、json を初めて使用しています。テーブルビューの上に検索フィールドがあり、入力した検索テキストにデータをフィルター処理したいと考えています。JSON は次のようになります。

{
"id":1,
"title":"Een Product",
"category":"Categorie",
"description":"Een Beschrijving",
"price":"10.00",
"image":"http:\/\/dev.smit-it.info\/APP\/LOGO\/een.png"
},

そして今、タイトルで検索できるようにしたいので、次のことを試しています。

- (void) searchBarSearchButtonClicked:(UISearchBar *)sender
{
    [self.SearchbarOnDisplay resignFirstResponder];
    self.SearchbarOnDisplay.showsCancelButton=NO;

    //ToDo:Get the search results
    NSString *match = self.SearchbarOnDisplay.text;

    self.SearchIsStarted = YES;

    NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"SELF CONTAINS[cd] %@", match];
    NSArray *ArrayWithFilteredContent;

    ArrayWithFilteredContent = [self.dynamicData.DynamicRetrevedData filteredArrayUsingPredicate:sPredicate];
    [self.tableView reloadData];

}

今、いくつかのブレークポイントを設定しましたが、問題self.dynamicData.DynamicRetrevedDataは NIL です。これはviewdidloadのallocとinitであり、データは現在テーブルビューに表示されているため、わかりません。nil でない場合、タイトルを検索するように指定するにはどうすればよいですか。

あなたが助けてくれることを願っています、私はすでにこれを2日間試しています

4

1 に答える 1

1

まず、あなたのパターンがNSPredicate正しくないということです。

NSPredicate *sPredicate = [NSPredicate predicateWithFormat:@"title CONTAINS[cd] %@", match]; // or @"title beginswith[c] %@" for alphabetically search.

しかし、それは別の問題ではありません。tableViewのデータが正しく表示されているかどうかを最初にコードを1行ずつ確認してから、動作するはずですself.dynamicData.DynamicRetrevedData

于 2013-09-11T08:42:26.367 に答える