1

我解析 XML,我有搜索栏。当我尝试搜索时,我收到此错误:

无法对 object 进行正则表达式匹配<List: 0x888de20>

我认为问题在这里:

- (void) searchTableView 
{
    [filteredList superclass];
    filteredList = nil;

    filteredList = [[NSMutableArray alloc] initWithArray:app.listArray];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"SELF like[c] %@",[NSString  stringWithFormat:@"%@*",search.text]];
    [filteredList filterUsingPredicate:predicate]; 
}

我是 Xcode 的初学者。

这是我所有的 MasterViewController 类:

@implementation MasterViewController
@synthesize app;
@synthesize detailViewController = _detailViewController;
@synthesize theList;
@synthesize filteredList;
@synthesize search;


- (void)viewDidLoad
{
    [super viewDidLoad];
    app = [[UIApplication sharedApplication] delegate];
    filteredList = [[NSMutableArray alloc] initWithArray:app.listArray];
    [self.tableView reloadData];
}

- (void)didReceiveMemoryWarning
{
    [super didReceiveMemoryWarning];
}
-(NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
{
    return 1;
}
-(NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
{
    //return [app.listArray count];
    return [filteredList count];
}
-(UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
    static NSString *CellIdentifier = @"Cell";
    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
    if (cell == nil)
    {
        cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
        cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    }
    theList = [app.listArray objectAtIndex:indexPath.row];
    cell.textLabel.text = theList.znacka;
    cell.accessoryType = UITableViewCellAccessoryDisclosureIndicator;
    return cell;
}
- (void)viewWillAppear:(BOOL)animated
{
    [super viewWillAppear:animated];
}

- (void)viewDidAppear:(BOOL)animated
{
    [super viewDidAppear:animated];
}

- (void)viewWillDisappear:(BOOL)animated
{
    [super viewWillDisappear:animated];
}

- (void)viewDidDisappear:(BOOL)animated
{
    [super viewDidDisappear:animated];
}

- (BOOL)shouldAutorotateToInterfaceOrientation:(UIInterfaceOrientation)interfaceOrientation
{

    return (interfaceOrientation != UIInterfaceOrientationPortraitUpsideDown);
}

- (void) searchTableView
{
    [filteredList superclass];
    filteredList = nil;

    filteredList = [[NSMutableArray alloc] initWithArray:app.listArray];
    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"count=%d",[NSString stringWithFormat:@"%@*",search.text]];
    [filteredList filterUsingPredicate:predicate];


}

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    DetailViewController *detailView = [[DetailViewController alloc] init];

    theList = [app.listArray objectAtIndex:indexPath.row];

    detailView.theList = theList;

    [self.navigationController pushViewController:detailView animated:YES];
}
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
    [self searchTableView];
    [self.tableView reloadData];
}
- (void)searchBarSearchButtonClicked:(UISearchBar *)searchBar
{
    [self searchTableView];
    [search resignFirstResponder];
}
@end

我在 MasterViewController.xib 中有搜索栏。在那里,我有来自 XML 的五个项目 (theList.znacka),现在我需要搜索这些项目。

4

0 回答 0