我如何修复:由于未捕获的异常'NSUnknownKeyException'终止应用程序

时间:2016-01-05 14:52:05

标签: ios swift core-data uncaught-exception

我读过其他人有类似的未被捕获的例外,但大多数似乎是由于缺少插座连接造成的。我不相信我的QLineEditIBOutlets有关,因为VC在大多数情况下运行正常,而我的其他VCs运行正常。

我认为这与Core Data有关。这是错误,我认为错误发生在我的表cellForRowAtIndexPath

2016-01-05 15:18:14.947 Do List[1476:81278] *** Terminating app due to uncaught exception 'NSUnknownKeyException', reason: '[<NSManagedObject 0x7fbb89e7cc50> valueForUndefinedKey:]: the entity TomTask is not key value coding-compliant for the key "completedDate".'
*** First throw call stack:
(
0   CoreFoundation                      0x0000000102b5ee65 __exceptionPreprocess + 165
1   libobjc.A.dylib                     0x0000000104cfddeb objc_exception_throw + 48
2   CoreFoundation                      0x0000000102b5eaa9 -[NSException raise] + 9
3   CoreData                            0x0000000102757ec1 -[NSManagedObject valueForUndefinedKey:] + 289
4   Do List                             0x000000010235b9d6 _TFC7Do_List24AllocationViewController9tableViewfS0_FTCSo11UITableView21cellForRowAtIndexPathCSo11NSIndexPath_CSo15UITableViewCell + 2630
5   Do List                             0x000000010235c24f _TToFC7Do_List24AllocationViewController9tableViewfS0_FTCSo11UITableView21cellForRowAtIndexPathCSo11NSIndexPath_CSo15UITableViewCell + 79
6   UIKit                               0x0000000103933e43 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 766
7   UIKit                               0x0000000103933f7b -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 74
8   UIKit                               0x0000000103908a39 -[UITableView _updateVisibleCellsNow:isRecursive:] + 2996
9   UIKit                               0x000000010393d01c -[UITableView _performWithCachedTraitCollection:] + 92
10  UIKit                               0x0000000103923edc -[UITableView layoutSubviews] + 224
11  UIKit                               0x00000001038914a3 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 703
12  QuartzCore                          0x000000010369659a -[CALayer layoutSublayers] + 146
13  QuartzCore                          0x000000010368ae70 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366
14  QuartzCore                          0x000000010368acee _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24
15  QuartzCore                          0x000000010367f475 _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 277
16  QuartzCore                          0x00000001036acc0a _ZN2CA11Transaction6commitEv + 486
17  UIKit                               0x00000001037d4f7c _UIApplicationHandleEventQueue + 7329
18  CoreFoundation                      0x0000000102a8aa31 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE0_PERFORM_FUNCTION__ + 17
19  CoreFoundation                      0x0000000102a8095c __CFRunLoopDoSources0 + 556
20  CoreFoundation                      0x0000000102a7fe13 __CFRunLoopRun + 867
21  CoreFoundation                      0x0000000102a7f828 CFRunLoopRunSpecific + 488
22  GraphicsServices                    0x0000000106bb7ad2 GSEventRunModal + 161
23  UIKit                               0x00000001037da610 UIApplicationMain + 171
24  Do List                             0x0000000102368fad main + 109
25  libdyld.dylib                       0x000000010a52392d start + 1
26  ???                                 0x0000000000000001 0x0 + 1
)
libc++abi.dylib: terminating with uncaught exception of type NSException

一些笔记

有一组特定的VCs如果以特定顺序运行,会导致此错误。

当我从A -> B -> C出发,然后尝试放松到A时发生错误。

如果查看上面的异常堆栈,则错误发生在cellForRowAtIndexPath的{​​{1}}。那个allocViewControllerVC,所以它不应该加载,只是被解开了。

它引用了“B”,这是我昨天添加的新内容,可以解决这个问题。 CompletedDate是我刚刚开始在CompletedDate CoreData中展示的现有view controller属性。

1 个答案:

答案 0 :(得分:2)

如果您查看错误的第一行,看起来您有一个名为TomTask的类,您正在尝试使用&#34; completedDate&#34;来自,但没有&#34;完成日期&#34;在TomTask。

您出现(从您的调用堆栈中的第4项开始),您尝试在该视图控制器的tableView:cellForRowAtIndexPath:方法中执行此操作。