2
Ich habe den folgenden Code, um einen DatePicker zu einem meiner UIViews hinzuzufügen.UIDatePicker NSRangeException Absturz iOS 11
Dieser Code existiert schon eine Weile, aber wir haben jetzt einige zufällige Abstürze bemerkt. Die Abstürze passieren nur in iOS 11. Dies ist, was die Stack-Trace des Absturzes wie
siehtFatal Exception: NSRangeException
*** -[__NSArrayM objectAtIndex:]: index 9223372036854775807 beyond bounds [0 .. 1]
Fatal Exception: NSRangeException
0 CoreFoundation 0x180d87d38 __exceptionPreprocess
1 libobjc.A.dylib 0x18029c528 objc_exception_throw
2 CoreFoundation 0x180d20c44 _CFArgv
3 CoreFoundation 0x180c50cc0 -[__NSArrayM removeObjectAtIndex:]
4 UIKit 0x18a3ecaa8 -[UIPickerView selectedRowInComponent:]
5 UIKit 0x18ac52224 -[_UIDatePickerMode_Date _dateForYearRow:]
6 UIKit 0x18ac4edd8 -[_UIDatePickerMode dateForRow:inCalendarUnit:]
7 UIKit 0x18ac4fa70 -[_UIDatePickerMode _updateSelectedDateComponentsWithNewValueInComponent:usingSelectionBarValue:]
8 UIKit 0x18ac4fd18 -[_UIDatePickerMode selectedDateComponents]
9 UIKit 0x18ac43370 -[_UIDatePickerView _updatedLastSelectedComponentsByValidatingSelectedDateWithLastManipulatedComponent:]
10 UIKit 0x18ac427e8 -[_UIDatePickerView _setDate:animated:forced:]
11 UIKit 0x18ac42d24 -[_UIDatePickerView _setMode:]
12 UIKit 0x18ac42e40 -[_UIDatePickerView setDatePickerMode:]
Alle Hinweise auf das, was diesen Absturz würde verursachen? Vielen Dank
'Index 9223372036854775807 über Grenzen [0 .. 1]' scheint mir ziemlich klar. Wie versuchen Sie, auf die Daten des Pickers zuzugreifen? – LinusGeffarth
Was ist die Implementierung von 'changeDateInLabel:'? Genau wie Linus sagte, ist der Fehler ziemlich selbsterklärend. –
Ehrlich gesagt, sieht das für mich wie ein Framework-Fehler aus, wenn der Absturz in der zweiten Zeile des obigen Codes auftritt (was der Stack-Trace suggeriert, der aber entweder mit dem Debugger oder durch ein Log nach dem '' setDatePickerMode: 'line und sehen, ob dieses Protokoll vor dem Absturz auftritt. Eine brandneue Datumsauswahl sollte nicht abstürzen, nur weil Sie den Modus darauf eingestellt haben. Wenn Sie Ihre Zeilen neu anordnen, so dass Sie "-setDatePickerMode:" aufrufen, nachdem Sie alles andere eingerichtet haben, wird es das Problem umgehen. –