iOS 模拟器在编译时崩溃

iOS Simulator crashing in compile

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

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

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

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

这是我从 'console' 得到的输出:顺便说​​一句,请告诉我这段代码是否合理,我会删除它。

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)

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

` 导入 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

您没有提供很多细节,但这里是开始解决您的问题的方法。

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

当 post 访问此处时,您需要将其包含在 post 中。在该崩溃日志中,顶部部分会告诉您问题所在——典型的问题是 nil 值或调用超出范围的内容。进一步查看崩溃日志,您通常会看到系统内容(UIKit 等)。查看您创建的 class 中调用的最新方法。然后,在您的代码中找到该方法并在其旁边添加一个断点。断点到达该点时将停止执行您的代码。在屏幕底部的调试器 window 顶部,您会看到几个按钮。其中之一是 "step over"。当您到达断点时,使用 "step over" 按钮一次一行地执行您的代码。当你遇到问题时,它会崩溃。

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

我建议做的另一件事是学习如何使用 GitHub。当我开始学习这个(我还在学习它)时,git 似乎有点矫枉过正,但事后看来,从一开始就学习如何使用 git 是个好主意。您将能够创建分支来处理您软件中的功能,并在您有新功能时将它们合并到 "master"。当我开始的时候,我会走得相当远,我会做一个小的改变,我会破坏一堆东西——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。我怀疑这个 post 会引导您朝着正确的方向前进。

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 来完成此操作。 3) 当您的 ViewController 场景高亮显示时,在屏幕的右上角您应该会看到一些按钮。其中之一叫做 "Attributes Inspector"。确保选中 "Is Initial View Controller"。左边的一个按钮是 "Identity Inspector"。确保 class 设置为 ViewController.

我再说一遍。如果你想学习iOS,我建议先学习GitHub。此外,Stanford University has a free iOS course 由一位与史蒂夫·乔布斯密切合作的人教授,您可能会觉得有帮助。如果是 "too much" 开始,我建议你拿起一本 Big Nerd Ranch 的书或查看 Ray Wenderlich 的网站。

错误消息的相关部分是: “[<Testing123.ViewController 0x7f93ea8272c0> setValue:forUndefinedKey:]: 这个 class 不符合键值编码键 addFive.'

寻找您正在使用的地方 addFive。这不是为你使用它的实例定义的。