Вот мой код:pickerViews врежется
@synthesize pickerLetter, pickerNumber, pickerSymbol;
- (void)viewDidLoad {
[super viewDidLoad];
letters = [[NSArray alloc]initWithObjects:@"a", @"b", @"c", nil];
numbers = [[NSArray alloc]initWithObjects:@"1", @"2", @"3", nil];
symbols = [[NSArray alloc]initWithObjects:@"+", @"-", @"/", nil];
}
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView
{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component
{
if (pickerView == pickerLetter) {
return letters.count;
} else if (pickerView == pickerNumber){
return numbers.count;
} else {
return symbols.count;
}
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component
{
if (pickerView == pickerLetter) {
return [letters objectAtIndex:row];
} else if (pickerView == pickerNumber){
return [numbers objectAtIndex:row];
} else {
return [symbols objectAtIndex:row];
}
}
Это дает мне
Нагрузочному приложение из-за неперехваченное исключение 'NSRangeException', причина: «*** - [__ NSArrayM objectAtIndex]: индекс 1 за пределами границ [0 .. 0] '
Когда я использую сборщики в симуляторе.
код, который вызывает сбой в
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
label.text = [NSString stringWithFormat:@"%@ %@ %@",[letters objectAtIndex:[pickerLetter selectedRowInComponent:0]],[numbers objectAtIndex:[pickerNumber selectedRowInComponent:1]],[symbols objectAtIndex:[pickerSymbol selectedRowInComponent:2]]];
}
Какая строка кода вызывает исключение? – rmaddy
он рушится каждый раз, когда я перемещаю сборщики на другой элемент массивов – fabersky
, если я не играю с сборщиками, он работает правильно и отображается правильно – fabersky