选择填充表时,随机UITable Delegate崩溃

时间:2011-12-23 21:22:16

标签: ios uitableview exc-bad-access

我正在创建一个简单的应用来从UITable中选择视频网址。我已经将我的数据源挂钩并委托给UIViewController子类,并且表格已正确填充。此外,它还可以识别选择并打印到日志中。

我的问题是,当我选择一个单元格时,它会出现“EXC_BAD_ACCESS”并崩溃。我正在查看代码,错误传播到此方法:

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

  static NSString* cellIdentifier = @"SelectionIdentifier";

  //Errors start happening this next line
  UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
  if(cell ==  nil) {
    cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
  }
  //NSString* str = [[videos objectAtIndex:[indexPath row]] lastPathComponent];
  NSString* test = @"test";
  [[cell textLabel] setText:test];
  return cell;
}

-(void) tableView:(UITableView*)myTableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath {
//  NSLog(@"Selected!");
}

-(NSInteger)tableView:(UITableView*)tableView numberOfRowsInSection:(NSInteger)section {
  return [videos count];
}

我不确定为什么会在此方法中抛出此错误。任何修复?我仔细检查以确保视频阵列不是nill。

我做了另一个使用相同方法的应用程序,它不会导致这些错误。

非常感谢任何帮助或建议!

2 个答案:

答案 0 :(得分:0)

尝试使用 if(!cell),而不是测试 if(cell == nil)。老实说,我不确定这是什么问题,但在审查之后我不认为错误实际上并不在这个方法中(它可能以某种方式与之相关,这就是为什么它会把你带到这里)。

如果这只是在你选择一个单元格之后,为什么要调用这个方法?

答案 1 :(得分:0)

我认为你也应该调用这个方法。因为这是初步的委托方法

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}

看到你的tableView之后我根本没有发现任何问题。试试这可能会解决。