У меня есть некоторые данные в виде таблицы, которые я получаю из веб-службы. У меня есть пользовательский класс (SaveContactView), который вызывает ячейку таблицы в зависимости от счетчика countable array count. Даже если я получаю сообщение об ошибке в следующем коде,Панель UISearch: непризнанный селектор, отправленный в экземпляр
- (void)searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
{
if(searchText.length == 0)
{
isFiltered = NO;
}
else
{
NSLog(@"Mutable array == %@", mutableArray); // get only addresses of SaveContactView here.
isFiltered = YES;
filterdArray = [[NSMutableArray alloc] init];
for (NSString *name in mutableArray)
{
NSRange nameRange = [name rangeOfString:searchText options:NSCaseInsensitiveSearch]; // error
if(nameRange.location != NSNotFound)
{
[filterdArray addObject:name];
}
}
}
[self.tableViewContact reloadData];
}
Я думаю, что проблема где-то в cellForRowAtIndexPath
методы.
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *cellId = @"SaveContactCell";
ContactTableCell *cell = (ContactTableCell *)[self.tableViewContact dequeueReusableCellWithIdentifier:cellId];
if(!cell)
{
NSArray *nib
if(UI_USER_INTERFACE_IDIOM() == UIUserInterfaceIdiomPhone)
{
nib = [[NSBundle mainBundle] loadNibNamed:@"ContactTableCell" owner:self options:nil];
}
else
{
nib = [[NSBundle mainBundle] loadNibNamed:@"ContactTableCell_iPad" owner:self options:nil];
}
for (id object in nib)
{
if([object isKindOfClass:[ContactTableCell class]])
{
cell = (ContactTableCell *)object;
break;
}
}
cell = [nib objectAtIndex:0];
/*
if(isFiltered == YES)
{
cell.textLabel.text = [filterdArray objectAtIndex:indexPath.row];
}
else
{
cell.textLabel.text = [mutableArray objectAtIndex:indexPath.row];
}*/
SaveContactView *saveContact;
if(isFiltered == YES)
{
saveContact = [filterdArray objectAtIndex:indexPath.row];
}
else
{
saveContact = [mutableArray objectAtIndex:indexPath.row];
}
cell.name.text = saveContact.name;
cell.companyLabel.text = saveContact.company;
}
return cell;
}
isFiltered - значение BOOL. У mutableArray есть все данные. filterArray выполнил поиск данных. Вход для mutableArray является
Mutable array === (
"<SaveContactView: 0x15d79a50>",
"<SaveContactView: 0x15d2c920>",
"<SaveContactView: 0x15d4a9e0>",
"<SaveContactView: 0x15d50360>",
"<SaveContactView: 0x15d1cf00>",
"<SaveContactView: 0x15d20c30>"
)
Показать свой nslog. –
Что такое непризнанный селектор, который вы отправляете, в соответствии с журналами консоли? –
log your 'mutableArray' –