【问题标题】:-[UINavigationController pushViewController:animated:] crashes with no error in console..while click the button-[UINavigationController pushViewController:animated:] 在控制台中崩溃,没有错误。点击按钮
【发布时间】:2014-01-08 10:03:01
【问题描述】:

PushViewController 崩溃,控制台中没有错误,但我在 Xcode 中确实收到了 EXC_BAD_ACCESS 错误。直到视图控制器被推送之后才会发生崩溃......但是它的推送视图是空的......没有代码可以搞砸。

http://i.stack.imgur.com/X62jD.png

【问题讨论】:

  • 在推送控制器之前放断点,看看“clientprogress”是否为nil
  • 我建议你检查一下你的Client_Progress类,看看有没有问题。

标签: ios iphone xcode4


【解决方案1】:

将下面的代码放到main.m中的callStackSymbols,然后看看返回什么

int main(int argc, char *argv[])
{
      @autoreleasepool 
      {
           @try
           {
                return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
           }
           @catch (NSException *exception)
           {
               NSLog(@"Stack Trace:: %@", [exception callStackSymbols]);
           }
      }
}

【讨论】:

  • 再次得到与某些 malloc 相同的错误:*** 对象 0xa27e800 的错误:未分配被释放的指针 *** 在 malloc_error_break 中设置断点以调试 BodyResolution(9973,0xb03f8000) malloc:** * 对象 0xa27ea00 的错误:未分配被释放的指针 *** 在 malloc_error_break 中设置断点以进行调试
【解决方案2】:

好像self.navigationController在接收pushViewController的那一刻不存在。为了澄清问题,您可以在项目中启用“僵尸对象”。

进入“Product”菜单,Scheme >,选择“Edit Scheme”,进入左侧面板的“Run YOUR_APP.app”,右侧的“Arguments”选项卡。然后将 NSZombieEnabled 添加到“环境变量”部分并将值设置为 YES。

“运行”的“诊断”选项卡上也有复选框 - “启用僵尸对象”。

没有“僵尸”:EXC_BAD_ACCESS

使用“僵尸”:-[UIViewController release]:消息发送到已释放的实例

【讨论】:

    猜你喜欢
    • 2023-03-17
    • 1970-01-01
    • 2011-06-11
    • 1970-01-01
    • 1970-01-01
    • 2013-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多