iOS模拟器在编译时崩溃

时间:2015-03-26 07:16:24

标签: ios xcode swift compilation

我是xcode和这个论坛的新手,很抱歉我的非专业语言。

当我尝试运行应用时,我遇到了iOS模拟器崩溃的问题。它并不总是发生,当我刚刚开始在一个项目上工作时,一切都很好。但是在我刚刚改变代码中的一些小东西之后,iOS模拟器一开始就崩溃了(编译工作)。 Xcode然后带我进入调试页面,并在右下角窗口显示了很多输出(我不知道它叫什么)。我没有得到任何输出,它说的是关于NSencryption的事情。一旦iOS模拟器开始崩溃,它每次开始运行该项目/应用程序时都会崩溃。即使我撤消了我在停止工作时所做的更改,即使我删除了所有代码,而且所有内容看起来都像是一个新项目,但它仍然没有运行。

试图打电话给Apple支持解决这个问题,但他们说我应该在论坛上发帖提问,希望你能帮助我,因为我真的厌倦了这个,我无法建立任何东西。

顺便说一下,我试图重置iOS模拟器,但同样的问题仍然存在。

以下是我从控制台获得的输出':顺便说一下,请告诉我这些代码是否合理,我会删除它。

2015-03-26 17:39:52.727 Testing123[19815:4331412] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<Testing123.ViewController 0x7f93ea8272c0> setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key addFive.' *** First throw call stack: ( 0 CoreFoundation 0x00000001026e1a75 __exceptionPreprocess + 165 1 libobjc.A.dylib 0x0000000104239bb7 objc_exception_throw + 45 2 CoreFoundation 0x00000001026e16b9 -[NSException raise] + 9 3 Foundation 0x0000000102afcd43 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259 4 CoreFoundation 0x000000010262b5e0 -[NSArray makeObjectsPerformSelector:] + 224 5 UIKit 0x000000010323b4ed -[UINib instantiateWithOwner:options:] + 1506 6 UIKit 0x0000000103099a88 -[UIViewController _loadViewFromNibNamed:bundle:] + 242 7 UIKit 0x000000010309a078 -[UIViewController loadView] + 109 8 UIKit 0x000000010309a2e9 -[UIViewController loadViewIfRequired] + 75 9 UIKit 0x000000010309a77e -[UIViewController view] + 27 10 UIKit 0x0000000102fb9509 -[UIWindow addRootViewControllerViewIfPossible] + 58 11 UIKit 0x0000000102fb98a1 -[UIWindow _setHidden:forced:] + 247 12 UIKit 0x0000000102fc5f8c -[UIWindow makeKeyAndVisible] + 42 13 UIKit 0x0000000102f700c2 -[UIApplication _callInitializationDelegatesForMainScene:transitionContext:] + 2732 14 UIKit 0x0000000102f72e3e -[UIApplication _runWithMainScene:transitionContext:completion:] + 1349 15 UIKit 0x0000000102f71d35 -[UIApplication workspaceDidEndTransaction:] + 179 16 FrontBoardServices 0x0000000105deb243 __31-[FBSSerialQueue performAsync:]_block_invoke + 16 17 CoreFoundation 0x0000000102616c7c __CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12 18 CoreFoundation 0x000000010260c9c5 __CFRunLoopDoBlocks + 341 19 CoreFoundation 0x000000010260c785 __CFRunLoopRun + 2389 20 CoreFoundation 0x000000010260bbc6 CFRunLoopRunSpecific + 470 21 UIKit 0x0000000102f717a2 -[UIApplication _run] + 413 22 UIKit 0x0000000102f74580 UIApplicationMain + 1282 23 Testing123 0x00000001025051ee top_level_code + 78 24 Testing123 0x000000010250522a main + 42 25 libdyld.dylib 0x0000000104a15145 start + 1 ) libc++abi.dylib: terminating with uncaught exception of type NSException (lldb)

这是给我这个错误的代码:

`import UIKit

class ViewController: UIViewController {
    override func viewDidLoad() {
        super.viewDidLoad()
        // Do any additional setup after loading the view, typically from a nib.
        }

    override func didReceiveMemoryWarning() {
        super.didReceiveMemoryWarning()
        // Dispose of any resources that can be recreated.
    }


}`

以下是project

2 个答案:

答案 0 :(得分:0)

您没有提供太多细节,但这里是如何开始解决您的问题。

Xcode应用程序的底部有一个调试器窗口。在该窗口中,将显示来自应用程序的消息。当您的应用程序崩溃时,它将打印出一个堆栈跟踪,显示崩溃前发生的事情。

在此处发布时,您需要在帖子中包含该内容。在崩溃日志中,顶部将告诉您问题所在 - 典型问题是零值或调用范围之外的东西。在崩溃日志中进一步查看,您通常会看到系统内容(UIKit等)。查看您创建的类中调用的最新方法。然后,在代码中找到该方法并在其旁边添加断点。断点将在到达该位置时停止执行代码。在屏幕底部的调试器窗口顶部,您会看到几个按钮。其中一个是“跨越”。当您点击断点时,使用“跳过”按钮一次执行一行代码。当你遇到问题时,它会崩溃。

您还需要Google调试控制台吐出的错误。 10次​​中有9次,有人遇到了您遇到的问题,您将能够继续解决问题。如果这不能解决问题,那么您需要在此处发布详细信息和有问题的方法。

我建议做的另一件事是学习如何使用GitHub。当我开始学习这个(我仍然在学习它)时,git看起来有点矫枉过正,但事后来看,从一开始就学习如何使用git是个好主意。您将能够创建分支以处理软件中的功能,并在您使用新功能时将它们合并为“主”。当我开始时,我会走得很远,我会做一个小改动,我会打破一些东西 - 这仍然会发生在Git上,但你会有一个功能的软件版本。使用Git,您将能够始终拥有一个可以运行的稳定版本,并且您可以添加功能而无需担心炸毁整个项目。

祝你好运!

更新新信息:

您的出发点是谷歌搜索:Terminating app due to uncaught exception 'NSUnknownKeyException', reason: ViewController setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key

此外,import UIKit应为#import UIKit。我怀疑这篇文章会引导你朝着正确的方向前进。

What does this mean? "'NSUnknownKeyException', reason: … this class is not key value coding-compliant for the key X"

<强>解决方案:

您有一个ViewController.swift文件,但您的故事板文件是

1)错误地命名和 2)没有任何场景。

以下是您需要做的事情:

1)重命名故事板文件“Main.storyboard” 2)在故事板上添加View Controller场景,因为您的故事板上当前没有场景。你可以通过拖动来实现这一点。从屏幕的右下角放下View Controller。 3)当您的ViewController场景突出显示时,在屏幕的右上角,您会看到一些按钮。其中一个被称为“属性检查员”。确保选中“是初始视图控制器”。左侧的一个按钮是“Identity Inspector”。确保课程设置为ViewController

我会再说一遍。如果你想学习iOS,我建议你先学习GitHub。此外,Stanford University has a free iOS course由一位与史蒂夫乔布斯密切合作的人教授,你可能会发现这些人很有帮助。如果它开始“太多”,我建议你去看一本Big Nerd Ranch书或者看看Ray Wenderlich的网站。

答案 1 :(得分:0)

错误消息的相关部分是: “[&lt; Testing123.ViewController 0x7f93ea8272c0&gt; setValue:forUndefinedKey:]:此类与键 addFive 不符合键值编码。

查找您使用addFive的位置。对于yu正在使用它的实例,没有定义。