【问题标题】:iOS app crashes after deleting Main.storyboard删除 Main.storyboard 后 iOS 应用程序崩溃
【发布时间】:2016-08-08 18:33:34
【问题描述】:

我想切换到 xib,所以我删除了 Main.storyboard。现在,当调用[self.window makeKeyAndVisible] 时,应用程序在didFinishLaunchingWithOptions 中没有输出日志而崩溃。我已经清除了 Target - General - Deployment Info 中的 Main Interface。崩溃是否与我删除 Main.storyboard 时应删除的某些链接有关?

- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {   
    self.window = [[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]];

    MainViewController *mvc = [[MainViewController alloc] init];
    UINavigationController *nvc = [[UINavigationController alloc] initWithRootViewController:mvc];

    self.window.rootViewController = nvc;
    self.window.backgroundColor = [UIColor whiteColor];
    [self.window makeKeyAndVisible];

    return [[AWSMobileClient sharedInstance] didFinishLaunching:application withOptions:launchOptions];
}

0x10759e180 上的断点:

UIKit`-[UIWindow makeKeyAndVisible]:
    0x10759e156 <+0>:  pushq  %rbp
    0x10759e157 <+1>:  movq   %rsp, %rbp
    0x10759e15a <+4>:  pushq  %rbx
    0x10759e15b <+5>:  pushq  %rax
    0x10759e15c <+6>:  movq   %rdi, %rbx
    0x10759e15f <+9>:  movq   0xc62182(%rip), %rsi      ; "isHidden"
    0x10759e166 <+16>: callq  *0xce6074(%rip)           ; (void *)0x0000000108f97800: objc_msgSend
    0x10759e16c <+22>: testb  %al, %al
    0x10759e16e <+24>: je     0x10759e182               ; <+44>
    0x10759e170 <+26>: movq   0xc63a11(%rip), %rsi      ; "_orderFrontWithoutMakingKey"
    0x10759e177 <+33>: movq   %rbx, %rdi
    0x10759e17a <+36>: callq  *0xce6060(%rip)           ; (void *)0x0000000108f97800: objc_msgSend
    0x10759e180 <+42>: jmp    0x10759e194               ; <+62>
    0x10759e182 <+44>: movq   0xc66a2f(%rip), %rsi      ; "_updateLayerOrderingAndSetLayerHidden:"
    0x10759e189 <+51>: xorl   %edx, %edx
    0x10759e18b <+53>: movq   %rbx, %rdi
    0x10759e18e <+56>: callq  *0xce604c(%rip)           ; (void *)0x0000000108f97800: objc_msgSend
    0x10759e194 <+62>: cmpq   %rbx, 0xce0045(%rip)      ; _UIKeyWindow
    0x10759e19b <+69>: je     0x10759e1b3               ; <+93>
    0x10759e19d <+71>: movq   0xc66bfc(%rip), %rsi      ; "makeKeyWindow"
    0x10759e1a4 <+78>: movq   %rbx, %rdi
    0x10759e1a7 <+81>: addq   $0x8, %rsp
    0x10759e1ab <+85>: popq   %rbx
    0x10759e1ac <+86>: popq   %rbp
    0x10759e1ad <+87>: jmpq   *0xce602d(%rip)           ; (void *)0x0000000108f97800: objc_msgSend
    0x10759e1b3 <+93>: addq   $0x8, %rsp
    0x10759e1b7 <+97>: popq   %rbx
    0x10759e1b8 <+98>: popq   %rbp
    0x10759e1b9 <+99>: retq   

【问题讨论】:

  • 你能显示你的applicationDidFinishLaunching...方法的内容吗?
  • 我已经更新了内容。

标签: ios objective-c iphone cocoa-touch storyboard


【解决方案1】:

我终于发现我新添加的 xib 缺少从 View 到 ViewController 的链接。在 File's Owner - Connections Inspector - Outlets 中,我将 view outlet 拖到 xib 的视图中,然后问题就解决了。

【讨论】:

    猜你喜欢
    • 2018-05-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多