2013-09-11 2 views
0

Я работаю над своим первым серьезным приложением для iphone и с помощью json в первый раз. Теперь у меня есть поле поиска над моей таблицей, и я хочу отфильтровать данные для введенного текста поиска. JSON выглядит следующим образом:Поиск NSArray, заполненный 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. что я не понимаю, потому что это alloc и init в viewdidload, и данные в настоящее время отображаются в представлении таблицы. И если это было не ноль, как я могу указать, что он ищет заголовок.

Надеется, что вы можете помочь, я уже пытаюсь это для

+0

Если некоторые из вас скорее хотят, чтобы проект был рад поделиться им – Msmit1993

+0

Будет проще с самим проектом или, по крайней мере, вставить код для просмотраDidLoad поэтому мы можем видеть, где и как вы распределяете материал. –

+0

Что такое 'self.dynamicData.DynamicRetrevedData' ?? сначала проверьте его в NSLog перед NSPredicate – iPatel

ответ

1

Первых вещей 2 дня является то, что ваша модель NSPredicate не является правильной, оно должно быть

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

Но это не другая проблема , первый код проверки строкой, если ваши данные TableView правильно отображаются, тогда он должен работать self.dynamicData.DynamicRetrevedData

+0

Ничего себе, это проблема. Я получаю свои результаты. благодаря – Msmit1993

Смежные вопросы