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,并且数据当前显示在 tableview 中。如果它不是 nil 我如何指定它搜索标题。

希望您能提供帮助,我已经尝试了 2 天

4

1 回答 1

1

首先是你的模式NSPredicate不正确,应该是

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

但这不是其他问题。如果您的 tableView 的数据正确显示,则首先逐行检查代码,那么它应该可以工作self.dynamicData.DynamicRetrevedData

于 2013-09-11T08:42:26.367 回答