2011-12-08 22 views
0

Webデータベースにデータを入力するためのフォームを作成しています。すべてがうまくいっていますが、複数のデータセットを持つ複数のピッカーを用意する必要があります。私は、データソースとしてインスタンス化して設定できるクラスを設定しようとしています。ピッカーに私がプルアップしてポイントしてもらいましたが、別のメソッドを使いました。今、私は私に、このエラーを与えて、それがデータをロードするために取得することはできません。UIPickerView:インスタンスに送信されたセレクタが認識されない

'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)]; 

考えられますか?

答えて

0

ローカル変数を実行し、同じクラスを使用してそれらをすべてロードすることでこれを修正しました。 XMLを使用してこれらの変数を取り出し、ピッカーの負荷でそれらを作成しました。

関連する問題