Xcode 8: Завершение с Uncaught исключением типа NSException

Я новичок, и у меня появляется эта ошибка, я посмотрел везде и не могу найти решение. Любая помощь могла бы быть полезна!

  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)

5 ответов

Проверьте свою раскадровку: все IBAction, IBOutlet связаны и с их текущими именами? Это на самом деле происходит, когда проблема с iboutlets

Если вы только что обновились до Swift 4 и у вас возникли проблемы с запуском приложения на устройстве iOS 11 или на симуляторе, возможно, у вас возникла та же проблема, что и с UIVisualEffectViewи, в частности, с добавлением подпредставлений к нему.

Документация Apple гласит:

Добавляйте подпредставления в 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)

Я надеюсь, что это поможет кому-то, так как мне понадобилось время, чтобы понять это.

Если кто-то сталкивается с этой проблемой, убедитесь, что вы

  1. Перейти на Main.storyboard
  2. ВПРАВО щелкните на значке желтого прямоугольника (вид контроллера) в верхней части контура телефона.
  3. УДАЛИТЕ розетку (и) с желтыми флажками.

В таких случаях вы, вероятно, назвали действие, а затем переименовали его. Вам нужно удалить старое имя, и если это была единственная проблема, она запустится прямо в симуляторе!

ПРИМЕЧАНИЕ: в большинстве случаев это происходит из-за неправильного подключения, поэтому дважды проверьте и убедитесь, что все розетки подключены правильно.

Вызывает метод setValue:forKey:, который вызывается после того, как ячейка табличного представления была исключена. Видимо в MealTableViewController.

Проверьте ячейки табличного представления XIB, может быть, IBOutlet остался с неправильным именем, или, может быть, свойство установлено с неправильным именем.

Если вы используете Firebase и имеете эту проблему при загрузке, будьте осторожны со значением ключа. Ключи не должны содержать "#", "%" и т. Д. Я просто удалил и работал нормально.

Другие вопросы по тегам