删除 Main.storyboard 后 iOS 应用程序崩溃

标签 ios objective-c iphone cocoa-touch storyboard

我想切换到 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   

最佳答案

我终于发现我新添加的 xib 缺少从 View 到 ViewController 的链接。在文件所有者 - 连接检查器 - socket 中,我将 View socket 拖到 xib 的 View 中,然后问题就解决了。

关于删除 Main.storyboard 后 iOS 应用程序崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36669962/

相关文章:

ios - 在长按 uiTableView IOS 上更改单元格的选择

ios - 从项目中的核心数据开始?

c++ - 从 C++ 调用 Objective-C 类方法

iphone - 向 Apple Store 提交 iPhone 应用程序并定价

ios - 如何从详细 View Controller 中的选定单元格获取 cell.textLabel.text?

ios - 使用相同的 View Controller 进行添加、显示和编辑

ios - Today Extension 有标题,但没有正文 iOS 8

objective-c - 在 iOS 应用程序中实现导航

objective-c - 是否有必要为 NSTextFieldCell 子类实现所有初始化器?

c# - iPhone - 未经授权的访问异常