首页 文章

完整性检查:UIBarButtonItem崩溃尝试执行操作

提问于
浏览
1

我的一位用户报告他的设备崩溃,iPhone 3GS . 相同类型的其他设备未报告类似行为 . 他给我发了一份崩溃日志,在阅读它的基础上,我不知道该怎么办 . 我希望我不会错误地解释崩溃日志,但看起来我的动作还没有被调用 .

这就是我创建和设置UIBarButtonItem的方法:

- (void)viewDidLoad {
    [super viewDidLoad];
    UIBarButtonItem *addButton = [[UIBarButtonItem alloc] initWithBarButtonSystemItem:UIBarButtonSystemItemAdd  target:self action:@selector(addLog:)];
    self.navigationItem.rightBarButtonItem = addButton;
    [addButton release];
}

这是我的动作方法:

- (IBAction)addLog:(id)sender {
    MyViewController *myController = [[MyViewController alloc] initWithNibName:@"MyNib" bundle:nil];
    UINavigationController *subNavigationController = [[UINavigationController alloc] initWithRootViewController: myController];
    [self presentModalViewController:subNavigationController animated:YES];
    [myController release];
    [subNavigationController release];
}

这是崩溃日志:

Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x00000000, 0x00000000Crashed Thread:  0
Thread 0 Crashed:
0   libSystem.B.dylib                   0x0007e98c __kill + 81   libSystem.B.dylib                   0x0007e97c kill + 4
2   libSystem.B.dylib                   0x0007e96e raise + 10
3   libSystem.B.dylib                   0x0009361a abort + 34
4   MyApp                               0x000042e8 0x1000 + 13032
5   CoreFoundation                      0x00058ede -[NSObject performSelector:withObject:withObject:] + 18
6   UIKit                               0x0004205e -[UIApplication sendAction:to:from:forEvent:] + 78
7   UIKit                               0x00094d4e -[UIBarButtonItem(Internal) _sendAction:withEvent:] + 86
8   CoreFoundation                      0x00058ede -[NSObject performSelector:withObject:withObject:] + 18
9   UIKit                               0x0004205e -[UIApplication sendAction:to:from:forEvent:] + 78
10  UIKit                               0x00041ffe -[UIApplication sendAction:toTarget:fromSender:forEvent:] + 26
11  UIKit                               0x00041fd0 -[UIControl sendAction:to:forEvent:] + 32
12  UIKit                               0x00041d2a -[UIControl(Internal) _sendActionsForEvents:withEvent:] + 350
13  UIKit                               0x0004263e -[UIControl touchesEnded:withEvent:] + 330
14  UIKit                               0x00041656 -[UIWindow _sendTouchesForEvent:] + 318
15  UIKit                               0x00041032 -[UIWindow sendEvent:] + 74

1 回答

  • 2

    崩溃报告没有象征意义 . 我可以因为线路来电话:

    4   MyApp                               0x000042e8 0x1000 + 13032
    

    在符号化的崩溃报告中,此行将显示崩溃发生的哪种方法 .

    创建发布版本时,将从二进制文件中删除调试符号 . 您需要在构建之后保存构建文件夹中的.dSYM文件和应用程序包 .

    这些是表示崩溃报告所必需的 .

    如果您保存了这些文件,则需要确保它们位于聚光灯可以访问的位置 . 如果用户向您发送了崩溃报告,请尝试将其拖到Xcode的“管理器”窗口的“崩溃报告”选项卡中 . 这应该尝试表示崩溃报告(但只有拥有.dSYM和应用程序包才会成功) .

相关问题