在uitableview中的SearchBar不起作用
我已经创建了一个带有三个标签的自定义UITableviewCell,并将值传递给每个标签。它工作正常,直到现在。现在我想添加搜索栏在我的应用程序中搜索所有标签。这里是我的代码..在uitableview中的SearchBar不起作用
- (void)viewDidLoad {
[super viewDidLoad];
productArray=[[NSMutableArray alloc]init];
//Creating a temparay objects of Person
PersonDetail *personObj = [[PersonDetail alloc] init];
personObj.firstName = @"Adeem";
personObj.lastName = @"Basraa";
personObj.phoneNumber = @"123456789";
[productArray addObject:personObj];
[personObj release];
PersonDetail *personObj = [[PersonDetail alloc] init];
personObj.firstName = @"Ijaz";
personObj.lastName = @"Ahmed";
personObj.phoneNumber = @"987654321";
[productArray addObject:personObj];
[personObj release];
PersonDetail *personObj = [[PersonDetail alloc] init];
personObj.firstName = @"Waqas";
personObj.lastName = @"Noor";
personObj.phoneNumber = @"45656789";
[productArray addObject:personObj];
[personObj release];
searchData=[[NSMutableArray alloc]init];
[searchData addObjectsFromArray:productArray];
dataTable.delegate=self;
dataTable.dataSource=self;
[dataTable reloadData];
-(void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText{
if ((bar.text !=nil)&&(![searchBar.text isEqualToString:@""])&&(bar.text.length>=3)) {
searchText=bar.text;
NSMutableArray *array=[[NSMutableArray alloc]init];
for (NSString *stemp in productArray) {
NSRange titleResult=[stemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResult.length>0) {
[array addObject:stemp];
}
}
[bar setShowsCancelButton:YES];
[self.searchData removeAllObjects];
[self.searchData addObjectsFromArray:array];
[self.dataTable reloadData];
[array release];
}else {
[searchData removeAllObjects];
[searchData addObjectsFromArray:productArray];
[self.dataTable reloadData];
}
问题是当我开始在搜索栏中输入应用程序崩溃。任何帮助将不胜感激。谢谢。
希望这可能会帮助你。 在.h文件中声明NSMutableArray *array;
以下
- (void)searchBar:(UISearchBar *)theSearchBar textDidChange:(NSString *)searchText{
[copyListOfItems removeAllObjects];
if([searchText length] > 3) {
self.tableView.scrollEnabled = YES;
[self searchTableView];
}
else {
self.tableView.scrollEnabled = NO;
}
}
- (void) searchTableView {
array=[[NSMutableArray alloc]init];
NSString *searchText = searchBar.text;
for (NSString *sTemp in productArray)
{
NSRange titleResultsRange = [sTemp rangeOfString:searchText options:NSCaseInsensitiveSearch];
if (titleResultsRange.length > 0)
[array addObject:sTemp];
}
[self.tableView reloadData];
}
我对任何错误道歉。