Я строю форму для ввода данных в веб-базу данных.Все идет отлично, но мне нужно иметь несколько сборщиков с несколькими наборами данных.Я пытаюсь создать класс, который я могу создать и установить в качестве источника данных и делегировать выбранным мной сборщикам, которые были точными, но я использовал другой метод.Теперь я не могу заставить его загрузить данные, выдав эту ошибку:
'NSInvalidArgumentException', reason: '-[__NSArrayI numberOfComponentsInPickerView:]: unrecognized selector sent to instance 0x6c9c970'
Итак, вот мой код для класса выбора:
-(NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{
return 1;
}
-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{
return myArray.count;
}
-(NSString *)pickerView:(UIPickerView *)pickerView titleForRow:(NSInteger)row forComponent:(NSInteger)component{
return [myArray objectAtIndex:row];
}
-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component{
rowInt=row;
}
-(IBAction)setMyArray:(NSMutableArray *)incomingArray{
myArray = incomingArray;
}
А вот фактическийСам сборщик.
PickerViewLoader *source = [[PickerViewLoader alloc]init];
myarray =[[NSMutableArray alloc] initWithObjects:@"a", @"b", @"c", @"d", @"e", nil];
[source setMyArray:myarray];
pickerAction=[[UIActionSheet alloc]initWithTitle:nil delegate:nil cancelButtonTitle:nil destructiveButtonTitle:nil otherButtonTitles:nil];
[pickerAction setActionSheetStyle:UIActionSheetStyleBlackTranslucent];
CGRect pickerFrame = CGRectMake(0, 40, 0, 0);
UIPickerView *carrierPicker =[[UIPickerView alloc]initWithFrame:pickerFrame];
carrierPicker.showsSelectionIndicator=YES;
carrierPicker.dataSource=source;
carrierPicker.delegate=source;
[pickerAction addSubview:carrierPicker];
UISegmentedControl *closeButton=[[UISegmentedControl alloc]initWithItems:[NSArray arrayWithObject:@"OK"] ];
closeButton.momentary = YES;
closeButton.frame=CGRectMake(260, 7.0f, 50.0f, 30.0f);
closeButton.segmentedControlStyle =UISegmentedControlStyleBar;
closeButton.tintColor = [UIColor blackColor];
[closeButton addTarget:self action:@selector(closePicker) forControlEvents:UIControlEventValueChanged];
[pickerAction addSubview:closeButton];
[pickerAction showInView:self.view];
[pickerAction setBounds:CGRectMake(0, 0, 320, 464)];
Мысли?