我已在我的应用程序中集成了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似乎有问题 - 但我无法弄明白。
感谢您的帮助!
答案 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警告重新出现。如果是这样,你就会找到问题的根源。