添加新对象后,SearchBar不再起作用

时间:2012-03-31 12:15:46

标签: iphone objective-c cell searchbar

我已在我的应用程序中集成了searchBar。它工作得很好。但是在我的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 个答案:

答案 0 :(得分:1)

当您在不返回对象的情况下包裹Control reaches end of non void function方法时,会出现警告non void。要找出问题,请右键单击鼠标选择Structure选择Re – Indent。现在,您可以更轻松地找到代码的结构,并了解正在发生的事情。

答案 1 :(得分:1)

我怀疑问题可能在源文件中早于您发布的方法。请试试这个:

第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警告重新出现。如果是这样,你就会找到问题的根源。