选择UITableView单元格时出现奇怪的崩溃

时间:2010-08-04 03:30:06

标签: iphone multithreading

我选择一个表格的单元格会导致EXC_BAD_ADDRESS崩溃,该单元格应该在导航控制器上推送新视图。

这是堆栈跟踪(CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION_始终存在):

alt text http://dl.dropbox.com/u/71415/crash_threads.jpg

我强烈怀疑我添加的新代码是为了在单独的线程中加载应用程序所需的初始数据,部分原因是调用了新视图控制器的initloadView并返回正常。我正在[NSThread detachNewThreadSelector:@selector(loadData) toTarget:self withObject:nil];中执行applicationDidFinishLaunching,然后加载显示进度指示器的视图。数据准备好后loadData[self performSelectorOnMainThread:@selector(setupMainUI) withObject:nil waitUntilDone:NO];。 UI(表格和所有)加载正常,新鲜数据显示很好;只有在必须推送新视图时才会发生崩溃。通过制表符控制器切换视图也可以正常工作。

想法? 感谢。

更新

我正在做的是加载新的视图控制器:

    NSArray *arrayForSection = [filteredGobos objectAtIndex:indexPath.section];
Employee *selectedEmployee = [arrayForSection objectAtIndex:indexPath.row];
if (self.employeeVC == nil) {
    EmployeeVC *emplVC = [[EmployeeVC alloc] initWithEmployee:selectedEmployee];
    self.employeeVC = emplVC;
}
[self.navigationController pushViewController:employeeVC animated:YES];

1 个答案:

答案 0 :(得分:2)

你已经过度释放了一个物体。尝试释放自动释放池时,会通知您的应用。这意味着池中的某些东西已经被释放并且之前被释放了。尝试构建和分析或NSZombies以找到问题。

我不认为这与您的线程有关,因为您希望在那里看起来对我来说是正确的。