我正在开发一个tableView
,当我在iPhone中执行它时会崩溃,我不知道为什么会这样。在模拟器中工作正常。但是,在iPhone中,滚动不流畅和平滑。当我向下滚动只是隐藏第一行时,它会崩溃并退出应用程序。
我在Organizer控制台中找到了这一行:
Sat Oct 15 23:22:54 unknown ReportCrash[33018] <Notice>: Formulating crash report for process MyApp[33017]
Sat Oct 15 23:22:55 unknown com.apple.launchd[1] <Warning>: (UIKitApplication:WAY.MyApp[0xf392]) Job appears to have crashed: Bus error
Sat Oct 15 23:22:55 unknown SpringBoard[31481] <Warning>: Application 'MyApp' exited abnormally with signal 10: Bus error
Sat Oct 15 23:22:55 unknown ReportCrash[33018] <Error>: Saved crashreport to /var/mobile/Library/Logs/CrashReporter/MyApp_2011-10-15-232254_iPhone-de-Ibai.plist using uid: 0 gid: 0, synthetic_euid: 501 egid: 0
有什么想法吗?我已经尝试将行设置为0,它工作正常。然后尝试了1行,它再次开始崩溃。我还尝试将行留空 - 在tableView:cellForRowAtIndexPath
中做“无” - 没有任何信息可以查看读取数据是否是问题。
如果这个日志没有帮助,你能告诉我向下滚动时调用哪些方法吗?我以为这只是tableview:cellForRowAtIndexPath:
谢谢!
修改
tableView:cellForRowAtIndexPath
是:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ContactsCell";
ContactsCell *cell = (ContactsCell *) [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if(cell==nil){
NSArray *topLevelObjects = [[NSBundle mainBundle] loadNibNamed:@"ContactsCell" owner:self options:nil];
for(id currentObject in topLevelObjects){
if([currentObject isKindOfClass:[UITableViewCell class]]){
cell = (ContactsCell *) currentObject;
break;
}
}
}
// Configure the cell...
Person *persona =[contactsArray objectAtIndex:indexPath.row];
//Introducimos en la celda los datos.
[cell setCellNames:[persona name]];
[cell setCellStates:@"En Donosti"];
UIImage *contactImage = [UIImage imageWithData:[persona pic]];
if(contactImage != nil)
[cell setCellPics:contactImage];
return cell;
}
使用NSLog
进行一些调试时,应用程序在调用[table reload]
时停止工作(我认为这是我向下滚动时调用的方法)。