我正在创建一个简单的应用来从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。
我做了另一个使用相同方法的应用程序,它不会导致这些错误。
非常感谢任何帮助或建议!
答案 0 :(得分:0)
尝试使用 if(!cell),而不是测试 if(cell == nil)。老实说,我不确定这是什么问题,但在审查之后我不认为错误实际上并不在这个方法中(它可能以某种方式与之相关,这就是为什么它会把你带到这里)。
如果这只是在你选择一个单元格之后,为什么要调用这个方法?
答案 1 :(得分:0)
我认为你也应该调用这个方法。因为这是初步的委托方法
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
return 1;
}
看到你的tableView之后我根本没有发现任何问题。试试这可能会解决。