2016-06-27 15 views
0

Anwendungsabsturz bei Komponentenänderung, wenn Sie eine andere Komponente für UIpickerview scrollen.App stürzt ab bei Scroll UIPickerView

MutableArray eine für die Höhe in Meter und eine andere für die Füße 'ft Inch. Beide Zählungen haben unterschiedliche Zähler 200 Zähler. Feet Array Count 99.

Erste Komponente haben zwei Maßeinheiten Fuß & Meter, basierend auf der Auswahl, die ich jeweiligen Array anzeigen. in count

- (NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component { 

    if (pickerView == self.heightPickerView && component == 0) 
      return [self.heightTypeArray count]; 
    else if (pickerView == self.heightPickerView && component == 1){ 

     if ([self.heightPickerView selectedRowInComponent:0] == 0) 
      return [self.meterListArray count]; 

     else if ([self.heightPickerView selectedRowInComponent:0] == 1) 
      return  [self.feetInchListArray count]; 
    } 

    return 0; 
} 

Absturz bei Rückkehr [self.feetInchListArray objectAtIndex: row]; Da Array außerhalb der Grenzen.

- (NSString *)pickerView:(UIPickerView *)pickerView 
      titleForRow:(NSInteger)row 
      forComponent:(NSInteger)component{ 

    if (component == 0) { 
     return [self.heightTypeArray objectAtIndex:row]; 
    } 

    else if (pickerView == self.heightPickerView && component == 1){ 

     if ([self.heightPickerView selectedRowInComponent:0] == 0) 
      return [self.meterListArray objectAtIndex:row]; 

     else if (pickerView == self.heightPickerView && [self.heightPickerView selectedRowInComponent:0] == 1){ 

       return [self.feetInchListArray objectAtIndex:row]; 
    } 

Crash-Log:
* Beenden app aufgrund nicht abgefangene Ausnahme 'NSRangeException', Grund: '* - [__ NSArrayM objectAtIndex:]: Index 114 über Grenzen [0 .. 98]' ** * First Throw Callstack:

Können Sie einen Ratschlag, wie Sie das Problem mit Scroll-One-Picker-Komponente lösen und sofort einen anderen Komponenten-Anwendungsabsturz scrollen.

Gibt es eine Methode, die nicht erlaubt, Komponente zu scrollen, bis eine andere Komponente das Scrollen abgeschlossen hat.

+3

Der Index Ihres Arrays endet bei 98, Sie versuchen, den Index 114 zu erreichen. – Desdenova

Antwort

0

NSRangeException, was bedeutet, dass Sie versuchen, auf den Index eines Arrays über sein Limit hinaus zuzugreifen. überprüfen Sie bitte Ihre Array wieder und Datenquelle Methode wieder

  • (NSInteger) picker: (UIPickerView *) picker numberOfRowsInComponent: (NSInteger) -Komponente

  • (NSInteger) numberOfComponentsInPickerView: (UIPickerView *) picker

Verwandte Themen