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)
Я надеюсь, что это поможет кому-то, так как мне понадобилось время, чтобы понять это.
Если кто-то сталкивается с этой проблемой, убедитесь, что вы
- Перейти на Main.storyboard
- ВПРАВО щелкните на значке желтого прямоугольника (вид контроллера) в верхней части контура телефона.
- УДАЛИТЕ розетку (и) с желтыми флажками.
В таких случаях вы, вероятно, назвали действие, а затем переименовали его. Вам нужно удалить старое имя, и если это была единственная проблема, она запустится прямо в симуляторе!
ПРИМЕЧАНИЕ: в большинстве случаев это происходит из-за неправильного подключения, поэтому дважды проверьте и убедитесь, что все розетки подключены правильно.
Вызывает метод setValue:forKey:, который вызывается после того, как ячейка табличного представления была исключена. Видимо в MealTableViewController.
Проверьте ячейки табличного представления XIB, может быть, IBOutlet остался с неправильным именем, или, может быть, свойство установлено с неправильным именем.
Если вы используете Firebase и имеете эту проблему при загрузке, будьте осторожны со значением ключа. Ключи не должны содержать "#", "%" и т. Д. Я просто удалил и работал нормально.