【问题标题】:XCode AppDelegate returns sigabrt in 5.0 Simulator, but works fine in 4.3XCode AppDelegate 在 5.0 模拟器中返回 sigabrt,但在 4.3 中工作正常
【发布时间】:2012-06-20 12:24:06
【问题描述】:

我将 XCode 更新到 4.2,并希望使用 Simulator 5.0 而不是 4.3。

我编写了一个带有 5 个标签的标签栏应用程序,但通过 appdelegate 推送了另一个视图作为第一个视图。

现在我的问题是它在模拟器 4.3 中一切正常,但在模拟器 5.0 中却给我一个错误:

int retVal = UIApplicationMain(argc, argv, nil, nil); SIGABRT

objc[3441]: EXCEPTIONS: throwing 0x7d626b0 (object 0x7d1e750, a NSException)
objc[3441]: EXCEPTIONS: searching through frame [ip=0xe99ee sp=0xbfffdee0] for exception 0x7d62690
objc[3441]: EXCEPTIONS: catch(id)
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0xe99ee sp=0xbfffdee0] for exception 0x7d62690
objc[3441]: EXCEPTIONS: handling exception 0x7d62690 at 0xe9bac
objc[3441]: EXCEPTIONS: finishing handler
objc[3441]: EXCEPTIONS: throwing 0x7d5cd30 (object 0x7d1e750, a NSException)
objc[3441]: EXCEPTIONS: searching through frame [ip=0xe9b9c sp=0xbfffdee0] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: searching through frame [ip=0x1a02db3 sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0xe9b9c sp=0xbfffdee0] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0x1a02db3 sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: handling exception 0x7d5cd10 at 0x1a02e46
objc[3441]: EXCEPTIONS: rethrowing current exception
objc[3441]: EXCEPTIONS: searching through frame [ip=0x1a02e0f sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0x1a02e0f sp=0xbfffec20] for exception 0x7d5cd10
objc[3441]: EXCEPTIONS: finishing handler
objc[3441]: EXCEPTIONS: unwinding through frame [ip=0x1a02e38 sp=0xbfffec20] for exception 0x7d5cd10

我将问题定位在 AppDelegate 中:

AppDelegate *app = [AppDelegate getApp];
    app.tabController.selectedViewController = connNavController;

我也尝试通过使用来推动控制器

[self.navigationController pushViewController:myViewController animated:YES];

但我总是得到一个 SIGABRT。

清洁目标、重新启动等不起作用。

如果您有解决方案,请提供帮助。

谢谢!

【问题讨论】:

    标签: iphone xcode xcode4.2 ios-simulator sigabrt


    【解决方案1】:

    你有没有尝试替换

    UIApplicationMain(argc, argv, nil, nil);
    

    UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class]));
    

    【讨论】:

    • AppDelegate 首先加载登录屏幕。登录后有导致 SIGABRT 的委托。
    • AppDelegation 是这样完成的: AppDelegate *app = [AppDelegate getApp]; [app.navigationController pushViewController:cntrl 动画:YES]; [控制释放]; ios4.3 没问题,ios5 SIGABRT。 ;(
    【解决方案2】:

    从您的堆栈跟踪中可以看出很少,但是当您使用属性 selectedViewController 时,视图控制器大多数位于 UITabBarControllerviewcontrollers 数组中,如果它不在数组中,则会抛出错误就像在这种情况下。

    所以请确保你的代码中有这个:

    myTabBar.viewcontrolleres = [NSArray arrayWithObjects: myViewController, more, nil];
    

    【讨论】:

    • 在代码中。当我离开我的代表团并只显示标签栏时,它可以工作。我在导航栏中使用与以前相同的 Appdelegation 创建了按钮。一旦按下按钮,我就会得到相同的 SIGABRT。似乎我不能在整个应用程序中使用这种类型的委托。
    • 我可以看到数组中没有所有的 tabbarControllers,当我尝试调用其中一个时,我得到了 sigabrt。 ios4.3 只是覆盖了它。是否有可能在 ios5 中也覆盖它?
    猜你喜欢
    • 1970-01-01
    • 2012-01-19
    • 1970-01-01
    • 2012-09-23
    • 2017-05-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-06-18
    相关资源
    最近更新 更多