Xcode 8:终止types为NSException的未捕获exception

我是一个新手,我有这个错误,我抬头看,无法find解决scheme。 任何帮助将非常感激!

0 CoreFoundation 0x00000001102bb34b __exceptionPreprocess + 171 1 libobjc.A.dylib 0x000000010d61c21e objc_exception_throw + 48 2 CoreFoundation 0x00000001102bb299 -[NSException raise] + 9 3 Foundation 0x000000010d12c2ff -[NSObject(NSKeyValueCoding) setValue:forKey:] + 291 4 UIKit 0x000000010dbafc01 -[UIView(CALayerDelegate) setValue:forKey:] + 173 5 UIKit 0x000000010def9be6 -[UIRuntimeOutletConnection connect] + 109 6 CoreFoundation 0x0000000110260590 -[NSArray makeObjectsPerformSelector:] + 256 7 UIKit 0x000000010def856a -[UINib instantiateWithOwner:options:] + 1867 8 UIKit 0x000000010dc451e8 -[UITableView _dequeueReusableViewOfType:withIdentifier:] + 399 9 UIKit 0x000000010dc456e0 -[UITableView dequeueReusableCellWithIdentifier:forIndexPath:] + 71 10 Foodtracker 0x000000010d0274e7 _TFC11Foodtracker23MealTableViewController9tableViewfTCSo11UITableView12cellForRowAtV10Foundation9IndexPath_CSo15UITableViewCell + 199 11 Foodtracker 0x000000010d027a97 _TToFC11Foodtracker23MealTableViewController9tableViewfTCSo11UITableView12cellForRowAtV10Foundation9IndexPath_CSo15UITableViewCell + 87 12 UIKit 0x000000010dc58ba9 -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] + 757 13 UIKit 0x000000010dc58e07 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] + 74 14 UIKit 0x000000010dc2c871 -[UITableView _updateVisibleCellsNow:isRecursive:] + 3295 15 UIKit 0x000000010dc62189 -[UITableView _performWithCachedTraitCollection:] + 110 16 UIKit 0x000000010dc489e3 -[UITableView layoutSubviews] + 222 17 UIKit 0x000000010dbb0344 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1237 18 QuartzCore 0x000000011306acdc -[CALayer layoutSublayers] + 146 19 QuartzCore 0x000000011305e7a0 _ZN2CA5Layer16layout_if_neededEPNS_11TransactionE + 366 20 QuartzCore 0x000000011305e61e _ZN2CA5Layer28layout_and_display_if_neededEPNS_11TransactionE + 24 21 QuartzCore 0x0000000112fec62c _ZN2CA7Context18commit_transactionEPNS_11TransactionE + 280 22 QuartzCore 0x0000000113019713 _ZN2CA11Transaction6commitEv + 475 23 QuartzCore 0x000000011301a083 _ZN2CA11Transaction17observer_callbackEP19__CFRunLoopObservermPv + 113 24 CoreFoundation 0x000000011025fe17 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 23 25 CoreFoundation 0x000000011025fd87 __CFRunLoopDoObservers + 391 26 CoreFoundation 0x00000001102444b6 CFRunLoopRunSpecific + 454 27 UIKit 0x000000010dae5db6 -[UIApplication _run] + 434 28 UIKit 0x000000010daebf34 UIApplicationMain + 159 29 Foodtracker 0x000000010d028c4f main + 111 30 libdyld.dylib 0x00000001111e568d start + 1 31 ??? 0x0000000000000001 0x0 + 1 

)libc ++ abi.dylib:以NSException(lldb)types的未捕获exception结束

检查你的故事板:所有的IBAction,IBOutlet连接,并与他们的名字? 这实际上是在iboutlets发生问题时发生的

如果你刚刚更新到Swift 4,并且在iOS 11设备或模拟器上运行你的应用程序时遇到问题,也许你和UIVisualEffectView有同样的问题,特别是添加子视图。

苹果的文档说:

将子视图添加到contentView,而不是直接添加到UIVisualEffectView。

基本上,而不是直接添加子视图到UIVisualEffectView ,将它们添加到它的.contentView

例:

 // create UIVisualEffectView let blackBlur = UIVisualEffectView(effect: UIBlurEffect(style: .dark)) // adding a subview - this worked on iOS 10 - crashes the app on iOS 11 blackBlur.addSubview(someView) // this works on both iOS 10 and iOS 11 blackBlur.contentView.addSubview(someView) 

我希望这能帮助别人,因为我花了一段时间才弄清楚这一点。

raise方法是setValue:forKey:,它在表视图单元格出队之后被调用。 显然在MealTableViewController中。

检查您的表格视图单元格XIB,可能有一个IBOutlet剩余的名称错误,或者可能是一个名称设置错误的属性。

如果有人遇到这个问题,确保你

  1. 去Main.storyboard
  2. 右键单击电话大纲顶部的黄色框图标(视图控制器)
  3. 用黄旗删除出口。

在这种情况下会发生什么,你可能会命名为一个动作,然后重命名它。 你需要删除旧的名称,如果这是唯一的问题将开始在模拟器!

注:大多数情况下,这是由于错误的连接,所以仔细检查并确保所有sockets连接正确。

如果您正在使用Firebase,并且在上传时遇到此问题,请注意密钥的值。 键不应该包括'#'或'%'等我刚刚删除,工作正常。