Swift:以 NSException 类型的未捕获异常终止

Posted

技术标签:

【中文标题】Swift:以 NSException 类型的未捕获异常终止【英文标题】:Swift: Terminating with uncaught exception of type NSException 【发布时间】:2015-06-05 02:53:46 【问题描述】:

我正在开发一个简单的应用程序,当我点击注册用户时,该应用程序被终止。请帮我解决这个问题。

上面写着:

由于未捕获的异常“NSUnknownKeyException”而终止应用程序, 原因: '[ setValue:forUndefinedKey:]:这个类不是键值 键 CreditCardTextField 的编码兼容。'

这里是更详细的错误:

015-06-04 22:42:57.661 ParseStarterProject[43853:4461316] 未知 Interface Builder 文件中的类 RegisterPageViewController。 2015-06-04 22:42:57.712 ParseStarterProject[43853:4461316] * 终止应用程序 由于未捕获的异常 'NSUnknownKeyException',原因: '[ setValue:forUndefinedKey:]: 这个 类与键的键值编码不兼容 CreditCardTextField。 * 第一次抛出调用堆栈:( 0 CoreFoundation 0x00000001106ccf35 exceptionPreprocess + 165 1 libobjc.A.dylib 0x000000011233ebb7 objc_exception_throw + 45 2 核心基础 0x00000001106ccb79 -[NSException raise] + 9 3 基础 0x0000000110b6b7b3 -[NSObject(NSKeyValueCoding) setValue:forKey:] + 259 4 核心基础 0x0000000110616e80 -[NSArray makeObjectsPerformSelector:] + 224 5 UIKit 0x000000011134bc7d -[UINib instantiateWithOwner:options:] + 1506 6 UIKit 0x00000001111aaf98 -[UIViewController _loadViewFromNibNamed:bundle:] + 242 7 UIKit 0x00000001111ab588 -[UIViewController loadView] + 109 8 UIKit 0x00000001111ab7f9 -[UIViewController loadViewIfRequired] + 75 9 UIKit 0x00000001111abc8e -[UIViewController 视图] + 27 10 UIKit 0x000000011174d41e -[_UIFullscreenPresentationController _setPresentedViewController:] + 65 11 UIKit 0x0000000111187429 -[UIPresentationController initWithPresentedViewController:presentingViewController:] + 105 12 UIKit 0x00000001111b7a41 -[UIViewController _presentViewController:withAnimationController:completion:] + 1746 13 UIKit 0x00000001111b9d81 __62-[UIViewController presentViewController:animated:completion:]_block_invoke + 132 14 UIKit 0x00000001111b9ca5 -[UIViewController presentViewController:animated:completion:] + 229 15 UIKit 0x00000001110878be -[UIApplication sendAction:to:from:forEvent:] + 75 16 UIKit 0x000000011118e410 -[UIControl _sendActionsForEvents:withEvent:] + 467 17 UIKit 0x000000011118d7df -[UIControl touchesEnded:withEvent:] + 522 18 UIKit 0x00000001110cd308 -[UIWindow _sendTouchesForEvent:] + 735 19 UIKit 0x00000001110cdc33 -[UIWindow sendEvent:] + 683 20 UIKit 0x000000011109a9b1 -[UIApplication sendEvent:] + 246 21 UIKit 0x00000001110a7a7d _UIApplicationHandleEventFromQueueEvent + 17370 22 UIKit 0x0000000111083103 _UIApplicationHandleEventQueue + 1961 23 核心基础 0x0000000110602551 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION + 17 24 核心基础 0x00000001105f841d __CFRunLoopDoSources0 + 269 25 CoreFoundation 0x00000001105f7a54 __CFRunLoopRun + 868 26 CoreFoundation 0x00000001105f7486 CFRunLoopRunSpecific + 470 27 图形服务 0x0000000113de79f0 GSEventRunModal + 161 28 UIKit 0x0000000111086420 UIApplicationMain + 1282 29 ParseStarterProject 0x000000010fbbe9de top_level_code + 78 30 ParseStarterProject 0x000000010fbbeaba main + 42 31 libdyld.dylib 0x0000000112b54145 开始 + 1 32 ??? 0x0000000000000001 0x0 + 1 ) libc++abi.dylib: 终止于 NSException (lldb) 类型的未捕获异常

【问题讨论】:

【参考方案1】:

看来CreditCardTextField 的@IBOutlet 已损坏,请检查您的情节提要,一旦您重新连接插座,一切都会恢复正常

setValue:forUndefinedKey:]: this class is not key value coding-compliant for the key CreditCardTextField.'

这是您检查网点的方式:

选中该字段,右边的插座应该连接正确,代码中的圆圈里面应该有一个点,如果不是连接断开,控制拖动修复它。

【讨论】:

以上是关于Swift:以 NSException 类型的未捕获异常终止的主要内容,如果未能解决你的问题,请参考以下文章

以 NSException Timer Swift Crash 类型的未捕获异常终止

从 Swit2.3 到 Swift3 的转换导致“以 NSException 类型的未捕获异常终止”

Swift 2 到 3 迁移错误(libc++abi.dylib:以 NSException 类型的未捕获异常终止)

(Swift 3) 父子上下文崩溃核心数据 (libc++abi.dylib: 以 NSException (Recorded Frame) 类型的未捕获异常终止)

以 NSException 类型的未捕获异常终止 - 删除表视图行

以 NSException (lldb) 类型的未捕获异常终止