SearchBar больше не работает после добавления новых объектов - PullRequest
0 голосов
/ 31 марта 2012

Я встроил панель поиска в свое приложение. И это работало нормально. Но после добавления новых элементов в tableView мой searchBar больше не работает. Я получаю сообщения об ошибках в этом блоке кода:

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *CellIdentifier = @"Cell";

UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; // Here i get: >Control reaches end of non void function<

if (cell == nil) 
{
    cell = [[[UITableViewCell alloc] initWithFrame:CGRectZero reuseIdentifier:CellIdentifier] autorelease];
}
if (searching)
{
    VerwaltungInformation *searchedFormel = [copyListOfFormularies objectAtIndex:indexPath.row] ; //Here i get: >Thread 1: Program received signal "SIGABRT"<

    cell.textLabel.text = searchedFormel.nameFormel;
}
else
{
NSDictionary *dictionaryCell = [listOfFormularies objectAtIndex:indexPath.section];
NSArray *arrayCell = [dictionaryCell objectForKey:@"Formel"];

VerwaltungInformation *cellValue = [arrayCell objectAtIndex:indexPath.row];

cell.textLabel.text = cellValue.nameFormel;
}

return cell;

Кажется, есть проблема с cellIdentifier - но я не могу понять это.

Спасибо за любую помощь!

Ответы [ 2 ]

1 голос
/ 31 марта 2012

Я подозреваю, что проблема может быть раньше в исходном файле, выше метода, который вы опубликовали.Пожалуйста, попробуйте это:

Шаг 1:

@implementation MyClass

@synthesize ...

#if 0

// all of the code that precedes cellForRowAtIndexPath

#endif

 - (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {

// and so on

Компилятор все еще предупреждает о CellIdentifier?Я думаю, что нет (хотя вы, вероятно, увидите все виды ошибок ниже, связанных с символами, которые вы спрятали внутри #if #endif).

Шаг 2:

Переместите пару #if #endif, чтобы обернуть методы по одному в файле, метод за методом, начиная с метода выше того, который вы опубликовали, до появления предупреждения CellIdentifier.Когда это произойдет, вы найдете источник проблемы.

1 голос
/ 31 марта 2012

Предупреждение Control reaches end of non void function появляется, когда вы завершили свой метод non void без возврата объекта. Чтобы выяснить вашу проблему, щелкните правой кнопкой мыши, выберите Structure, выберите Re – Indent. Теперь вы можете более легко узнать структуру вашего кода и узнать, что происходит.

...