向下滚动时,UITableView在iPhone上崩溃

时间:2011-10-15 21:46:55

标签: ios uitableview crash

我正在开发一个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]时停止工作(我认为这是我向下滚动时调用的方法)。

0 个答案:

没有答案