我解析 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),现在我需要搜索这些项目。