选择UITableView单元格时发生奇怪的崩溃

问题描述:

当选择一个表格单元格时,我将碰到一个EXC_BAD_ADDRESS崩溃,该单元格应该在导航控制器上推送一个新视图。选择UITableView单元格时发生奇怪的崩溃

这里是堆栈跟踪(在CFRUNLOOP_IS_CALLING_OUT_TO_A_TIMER_CALLBACK_FUNCTION_是永远存在的):

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

我强烈怀疑新的代码我已经添加加载初始数据在一个单独的线程应用程序的需求,一方面是因为新视图控制器的initloadView正在调用并返回正常。我在applicationDidFinishLaunching中执行[NSThread detachNewThreadSelector:@selector(loadData) toTarget:self withObject:nil];,然后加载显示进度指示器的视图。当数据准备好时,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]; 
+0

显示您创建并推送新视图的一些代码。 EXC_BAD_ADDRESS意味着你正在尝试访问不存在的内容。 – lukya 2010-08-04 04:59:52

你overreleased的对象。尝试释放自动释放池时,您的应用程序会发出信号。这意味着池中的某些东西已经被释放和处理过。尝试构建&分析或NSZombies找到问题。

我不认为它与你的线程有关,因为你在那里提到的想法对我来说看起来是正确的。

+0

就是这样。不是线程问题。我在新的视图控制器中发布了一个自动释放的数组。 – raheel 2010-08-05 11:57:58