Подтвердить что ты не робот

Авария UIWebSelectSinglePicker

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

изменить

происходит только на iphones, запуская iOS7 и iOS8

1   CoreFoundation  __exceptionPreprocess + 127
2   libobjc.A.dylib objc_exception_throw + 36
3   CoreFoundation  -[__NSArrayM objectAtIndex:] + 228
4   UIKit   -[UIWebSelectSinglePicker pickerView:didSelectRow:inComponent:] + 56
5   UIKit   -[UIPickerView _sendSelectionChangedForComponent:notify:] + 90
6   UIKit   -[UIPickerTableView _scrollingFinished] + 152
7   UIKit   -[UIScrollView(UIScrollViewInternal) _stopScrollDecelerationNotify:] + 842
8   UIKit   -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:tramplingDragFlags:] + 502
9   UIKit   -[UIScrollView(UIScrollViewInternal) _stopScrollingNotify:pin:] + 28
10  UIKit   -[UIScrollView _smoothScrollWithUpdateTime:] + 208
11  QuartzCore  CA::Display::DisplayLinkItem::dispatch() + 96
12  QuartzCore  CA::Display::DisplayLink::dispatch_items(unsigned long long, unsigned long long, unsigned long long) + 364
13  IOMobileFramebuffer IOMobileFramebufferVsyncNotifyFunc + 88
14  IOKit   IODispatchCalloutFromCFMessage + 254
15  CoreFoundation  __CFMachPortPerform + 130
16  CoreFoundation  __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 32
17  CoreFoundation  __CFRunLoopDoSource1 + 344
18  CoreFoundation  __CFRunLoopRun + 1606
19  CoreFoundation  CFRunLoopRunSpecific + 474
20  CoreFoundation  CFRunLoopRunInMode + 104
21  GraphicsServices    GSEventRunModal + 134
22  UIKit   UIApplicationMain + 1438
23  MYAPP   main (main.m:16)
24  libdyld.dylib   start + 0
4b9b3361

Ответ 1

Я бы предположил, что это связано с еще одной проблемой здесь в SO

Возникла проблема с WebView и системными элементами управления, запущенными из HTML.

Ответ 2

Я думаю, что нет ссылки с UIWebSelectSinglePicker. Я думаю, вы пытаетесь получить доступ к объекту по индексу вне диапазона вашего массива.

Чтобы предотвратить это, вы можете добавить что-то вроде:

if(index < [self.myArray count] && [self.myArray count] > 0){
     id myobject = [self.myArray objectAtIndex:index];
     // do what you want here with your object
}

Чтобы отладить этот вид проблемы и найти, где это происходит, попробуйте добавить символическую точку останова:

  • Выберите навигатор точки останова
  • нажмите "+"
  • "добавить символическую точку останова"
  • добавить "objectAtIndex" в поле символа