由于IBOutlet,iOS App在didFinishLaunchingWithOptions中崩溃

时间:2017-04-07 12:00:24

标签: ios swift storyboard initialization appdelegate

在我的iOS应用程序中,我有一个初始viewcontroller,包含2个用于登录的文本字段。 如果我在调试模式下运行应用程序代码编译良好,我可以看到我在主故事板上设置的初始viewcontroller。

相反,如果我尝试在发布中运行代码,则应用程序崩溃,无法设置插座。

2017-04-07 13:55:53.422 Sahin Fruit[40068:1230157] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<UIViewController 0x7fb5e2e0a450> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key emailTextField.'

为了克服这个问题,我尝试以编程方式在AppDelegate中设置初始VC,但没有结果,应用程序仍然崩溃。有什么想法吗?

    self.window = UIWindow(frame: UIScreen.main.bounds)
    let initialViewController = UIStoryboard.viewControllerWithIdentifier(Main.loginVC.rawValue, storyBoardName: .Main)
    self.window?.rootViewController = initialViewController
    self.window?.makeKeyAndVisible()

P.S:我关闭了发布中的优化,看看这是否也有帮助。

3 个答案:

答案 0 :(得分:1)

这是因为您必须在Storyboard中复制ViewController并为其分配不同的类。只需在第一个方框中右键单击ViewController的顶部(忘记确切的名称),您的额外插座将显示为yellow color triangle, just delete it,您的项目将构建正常。

enter image description here

答案 1 :(得分:0)

您有一个旧的插座,您已从代码中删除但仍在界面构建器

中连接

答案 2 :(得分:0)

检查您的故事板中您的商店的参考,其中一个可能引用了不再存在的属性