Сбой Uipicker при вращении двух компонентов одновременно - PullRequest
0 голосов
/ 22 октября 2011

Приведенный ниже код создает сбой, если я вращаю 2 компонента одновременно, в зависимости от того, какие периодические выборки выбраны, значения выходят за пределы

Мне нужна некоторая проверка состояния, которая остановит сбой, ноНе знаю, как

может кто-нибудь посоветовать подходящий код, который будет обрабатывать условие, чтобы избежать сбоя

спасибо

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{

    // Only calls the following code if component "0" has changed.
        if (component == 0) 
        {

            // Sets the global integer "component0Row" to the currently selected row of component "0"
            component0Row  = row;

            // Loads the new values for the selector into a new array in order to reload the data.
            NSDictionary *newDict = [[NSDictionary alloc]initWithDictionary:[pickerData objectForKey:[Letters objectAtIndex:component0Row]]];

            NSArray *sortArray = [[NSArray alloc]initWithArray:[newDict allKeys]];

            NSMutableArray *newValues = [[NSMutableArray alloc]initWithArray:[sortArray sortedArrayUsingSelector:@selector(localizedStandardCompare:)]];

            self.Numbers = newValues;

            component1Row = 0;
            [self.myPicker selectRow:0 inComponent:1 animated:NO];

            [newDict release];
            [sortArray release];
            [newValues release];
        }
        if(component ==1)
        {
            component0Row = [pickerView selectedRowInComponent:0];
            component1Row =row;
        }
}

1 Ответ

0 голосов
/ 22 октября 2011

Проблема может быть в методе titleForRow или numberOfRows.Вы должны убедиться, что вы не выходите за пределы рассматриваемого массива.

...