Не удалось найти причину сбоя –

В моем приложении много сообщений со следующим журналом сообщается очень часто, но даже с несколькими тестовыми устройствами и версиями iOS я не могу воспроизвести его. Поэтому нет способа найти причину на Xcode. Поскольку в трассировке нет шага, это приводит к моему коду, я не могу представить, как можно найти его происхождение. Само приложение очень сложное, и, конечно же, используются многие прокрутки, также встроенные.

У кого-нибудь есть идея, с чего начать искать? Или у кого-то была аналогичная проблема раньше?

Я очень благодарен за любую помощь!

С уважением, Флориан

OS Version: iPhone OS 6.0.1 (10A523) Report Version: 104 Exception Type: SIGSEGV Exception Codes: SEGV_ACCERR at 0xd1d28fbc Crashed Thread: 0 Thread 0 Crashed: 0 libobjc.A.dylib 0x392e65b0 objc_msgSend + 16 1 UIKit 0x35a839f7 -[UIScrollView(UIScrollViewInternal) _scrollViewAnimationEnded:finished:] + 135 2 UIKit 0x35a838e9 -[UIAnimator stopAnimation:] + 469 3 UIKit 0x35b1e257 -[UIAnimator(Static) _advanceAnimationsOfType:withTimestamp:] + 295 4 UIKit 0x35a83381 -[UIAnimator(Static) _LCDHeartbeatCallback:] + 53 5 QuartzCore 0x323d3071 CA::Display::DisplayLink::dispatch(unsigned long long, unsigned long long) + 161 6 QuartzCore 0x323d2fc9 CA::Display::IOMFBDisplayLink::callback(__IOMobileFramebuffer*, unsigned long long, unsigned long long, unsigned long long, void*) + 65 7 IOMobileFramebuffer 0x340befd7 IOMobileFramebufferVsyncNotifyFunc + 155 8 IOKit 0x35ee8449 IODispatchCalloutFromCFMessage + 193 9 CoreFoundation 0x339605db __CFMachPortPerform + 119 10 CoreFoundation 0x3396b173 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 35 11 CoreFoundation 0x3396b117 __CFRunLoopDoSource1 + 139 12 CoreFoundation 0x33969f99 __CFRunLoopRun + 1385 13 CoreFoundation 0x338dcebd CFRunLoopRunSpecific + 357 14 CoreFoundation 0x338dcd49 CFRunLoopRunInMode + 105 15 GraphicsServices 0x33f222eb GSEventRunModal + 75 16 UIKit 0x3596a2f9 UIApplicationMain + 1121 17 0x00005233 main (main.m:14) 

У меня был такой же крах. Это оказалось потому, что мы анимировали контроллер с помощью [controller setContentOffset: newPt animated: YES], и мы реализовали метод делегирования scrollViewDidScroll на контроллере. Щелчок по кнопке на экране позволяет перейти к другому контроллеру, поэтому, если пользователю удастся щелкнуть по кнопке во время анимации, мы ударим об ошибке первоначального плаката. Решение состоит в том, чтобы просто установить делегат на нуль в dealloc.

Сигнал SIGSEGV отправляется процессу, когда он вызывает неверную ссылку на виртуальную память или ошибку сегментации. (см. Википедию )

Таким образом, вы получаете доступ к объекту, который, вероятно, был выпущен. Как это во время анимации, может быть, вы определили селектор, который будет вызываться после завершения анимации или что-то в этом роде? Это было бы, если бы я начал искать.

Вы можете взглянуть на этот поток: есть ли способ отменить анимированный UITableView / UIScrollView setContentOffset: анимированный 😕

Это обсуждение предполагает, что это может быть делегат, который dealloc'd до того, как scrollview отправит сообщение с завершением анимации.

  • Как включить или отключить прокрутку в UITableView?
  • Отображать элементы внутри ScrollView на раскадровке
  • iOS ScrollView требует ограничения для позиции или высоты y
  • UICollectionView внутри UIScrollView без прокрутки
  • Просмотр прокрутки пейджинга с помощью контроллеров детского просмотра
  • как скрыть клавиатуру в UIViewController по кнопке возврата click-> iphone
  • Как сделать липкие заголовки разделов (например, iOS) в Android?
  • scrollview прокручивается при доступе к последнему компоненту контроллера вида
  • iOS zoomToRect с длительностью
  • TableView с пользовательскими ячейками повторяет изображения первой и последней ячейки
  • Как сделать снимок изображения, установив соотношение сторон, а затем увеличить масштаб, оставляет белую область в Swift?
  • Давайте будем гением компьютера.