2017-02-15 3 views
1

Приложение рушится недавно, и мне не удалось понять журнал сбоев.Как понять этот журнал аварий? SIGSEGV

Катастрофа происходит только на iPhone 5s SDK: 9.1, я не могу воспроизвести его на тренажере или других устройств с другими версиями SDK ..

Crashed Thread: 0 
0 libobjc.A.dylib      0x1993b5bdc objc_msgSend (in libobjc.A.dylib) + 28 
1 UIKit        0x18a45bfb4 -[UINibStringIDTable lookupKey:identifier:] (in UIKit) + 132 
2 UIKit        0x18a457c04 -[UINibDecoder decodeObjectForKey:] (in UIKit) + 48 
3 UIKit        0x18a339030 -[UINib instantiateWithOwner:options:] (in UIKit) + 1416 
4 UIKit        0x189fc01b8 -[UITableView _dequeueReusableViewOfType:withIdentifier:] (in UIKit) + 552 
5 MyApp        0x10028a160 -[HomeVC loadStandardContentCellOnTableView:cellForRowAtIndexPath:] (in MyApp) (HomeVC.m:1604) 
6 MyApp        0x10028737c -[HomeVC tableView:cellForRowAtIndexPath:] (in MyApp) (HomeVC.m:1198) 
7 UIKit        0x18a1c220c -[UITableView _createPreparedCellForGlobalRow:withIndexPath:willDisplay:] (in UIKit) + 688 
8 UIKit        0x18a1c2364 -[UITableView _createPreparedCellForGlobalRow:willDisplay:] (in UIKit) + 80 
9 UIKit        0x18a1b17b8 -[UITableView _updateVisibleCellsNow:isRecursive:] (in UIKit) + 2440 
10 UIKit        0x18a1c6f0c -[UITableView _performWithCachedTraitCollection:] (in UIKit) + 104 
11 UIKit        0x189f5f22c -[UITableView layoutSubviews] (in UIKit) + 176 
12 UIKit        0x189e6f7ac -[UIView(CALayerDelegate) layoutSublayersOfLayer:] (in UIKit) + 644 
13 QuartzCore       0x18966eb58 -[CALayer layoutSublayers] (in QuartzCore) + 148 
14 QuartzCore       0x189669764 CA::Layer::layout_if_needed(CA::Transaction*) (in QuartzCore) + 292 
15 UIKit        0x189e862fc -[UIView(Hierarchy) layoutBelowIfNeeded] (in UIKit) + 884 
16 UIKit        0x189f339e4 -[UINavigationController _layoutViewController:] (in UIKit) + 1196 
17 UIKit        0x189f313bc -[UINavigationController _layoutTopViewController] (in UIKit) + 228 
18 UIKit        0x189f49fb4 -[UINavigationController navigationTransitionView:didEndTransition:fromView:toView:] (in UIKit) + 728 
19 UIKit        0x189f49ca0 -[UINavigationTransitionView _notifyDelegateTransitionDidStopWithContext:] (in UIKit) + 416 
20 UIKit        0x189f499a8 -[UINavigationTransitionView _cleanupTransition] (in UIKit) + 744 
21 UIKit        0x189eaed3c -[UIViewAnimationState sendDelegateAnimationDidStop:finished:] (in UIKit) + 312 
22 UIKit        0x189eacfb8 +[UIViewAnimationState popAnimationState] (in UIKit) + 324 
23 UIKit        0x189f3d4c4 -[UINavigationTransitionView transition:fromView:toView:] (in UIKit) + 1792 
24 UIKit        0x189f33098 -[UINavigationController _startTransition:fromViewController:toViewController:] (in UIKit) + 2696 
25 UIKit        0x189f32244 -[UINavigationController _startDeferredTransitionIfNeeded:] (in UIKit) + 868 
26 UIKit        0x189f31e6c -[UINavigationController __viewWillLayoutSubviews] (in UIKit) + 60 
27 UIKit        0x189f31dd4 -[UILayoutContainerView layoutSubviews] (in UIKit) + 208 
28 UIKit        0x189e6f7ac -[UIView(CALayerDelegate) layoutSublayersOfLayer:] (in UIKit) + 644 
29 QuartzCore       0x18966eb58 -[CALayer layoutSublayers] (in QuartzCore) + 148 
30 QuartzCore       0x189669764 CA::Layer::layout_if_needed(CA::Transaction*) (in QuartzCore) + 292 
31 QuartzCore       0x189669624 CA::Layer::layout_and_display_if_needed(CA::Transaction*) (in QuartzCore) + 32 
32 QuartzCore       0x189668cc0 CA::Context::commit_transaction(CA::Transaction*) (in QuartzCore) + 252 
33 QuartzCore       0x189668a08 CA::Transaction::commit() (in QuartzCore) + 512 
34 QuartzCore       0x1896620f8 CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*) (in QuartzCore) + 80 
35 CoreFoundation      0x184897bd0 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ (in CoreFoundation) + 32 
36 CoreFoundation      0x184895974 __CFRunLoopDoObservers (in CoreFoundation) + 372 
37 CoreFoundation      0x184895da4 __CFRunLoopRun (in CoreFoundation) + 928 
38 CoreFoundation      0x1847c4ca0 CFRunLoopRunSpecific (in CoreFoundation) + 384 
39 GraphicsServices     0x18fa00088 GSEventRunModal (in GraphicsServices) + 180 
40 UIKit        0x189edcffc UIApplicationMain (in UIKit) + 204 
41 MyApp        0x100272ea4 main (in MyApp) (main.m:47) 

Я не понимаю, что это реальная причина это крушение. Есть идеи?

+0

Я думаю, что может быть что-то не так с методом 'cellForRowAtIndexPath' в вашем' HomeVC'. Вы должны сделать точку прерывания при создании экземпляра ячейки, я думаю, что здесь происходит сбой приложения. –

+0

@StefanStefanov Это не сбой на моем конце. Я не могу воспроизвести эту ошибку, я думал, что это может иметь некоторые отношения со старым SDK или что-то в этом роде. – Zakaria

+0

Я довольно уверен, что что-то не так с тем, как вы меняете свою ячейку. Может быть, вы используете для этого устаревший метод? –

ответ

0

Вы используете устаревший метод для деактивации вашей ячейки. Вместо использования dequeueReusableCellWithIdentifier: вы должны использовать dequeueReusableCellWithIdentifier:forIndexPath:.

+0

Я не думаю, что это на самом деле не рекомендуется, хотя, конечно, проще использовать новый метод, потому что он всегда возвращает ненулевое значение.В Swift особенно важна разница, поскольку использование варианта forIndexPath означает, что результат не будет необязательным, поэтому вам не нужно его разворачивать: '' 'func dequeueReusableCellWithIdentifier (идентификатор: String) -> UITableViewCell? func dequeueReusableCellWithIdentifier (идентификатор: String, forIndexPath indexPath: NSIndexPath) -> UITableViewCell''' –

0

SIGSEGV: - Дефекция сегментации. Подробнее на SegmentationFault

Эти методы ниже, имеют проблемы: -

5 MyApp 0x10028a160 -[HomeVC loadStandardContentCellOnTableView:cellForRowAtIndexPath:] (in MyApp) (HomeVC.m:1604) 6 MyApp 0x10028737c -[HomeVC tableView:cellForRowAtIndexPath:] (in MyApp) (HomeVC.m:1198)

Помещенные точек останова в loadStandardContentCellOnTableView и отладки. Трассировка стека с другими строками связана с яблочными методами.

+0

Это не сбой на моем конце. Я не могу воспроизвести эту ошибку, я думал, что это может иметь некоторые отношения со старым SDK или что-то в этом роде (я тестировал его на симуляторе с 9.1 SDK tho, и он отлично работает). – Zakaria

0

Возможно, ваша ячейка равна нулю.

Первое, что я предложу, включил NSZombie.

И затем попытайтесь использовать источник данных и делегат с данными nil tableview.

- (void)dealloc { 
    self.tableView.delegate = nil; 
    self.tableView.dataSource = nil; 
    [super dealloc]; 
} 

Надеюсь, что эта помощь.

Смежные вопросы