2012-01-25 9 views
0

EDITUIPickerviewはquestionmarksバックの代わりに、データ

私はUIPickerviewを持っていると私は私のNSMutualArrayからのデータでそれを埋めるかたいを与えます。私はNSLogと私の配列に何かがある場合、私はテストして、私はデータを取得します。しかし、それは私のpickerviewerを埋めることはありません

私は私のpickerviewerのためのこのメソッドがあります。

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


    return [dataArray objectAtIndex:row]; 

} 

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)pickerView{ 
    return 1;// assuming a single spinning wheel of strings (not split into left/right for example) 
} 

-(NSInteger)pickerView:(UIPickerView *)pickerView numberOfRowsInComponent:(NSInteger)component{ 
    return [json count]; // the number of strings that your parser finds and adds to the array 
} 

JSONからデータを取得するには、次の2つの方法を使用します。私はviewdidloadでstart関数を呼び出します。

-(void) getData:(NSData *) data{ 

    NSError *error; 

    json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 

} 
-(void) start { 

    NSURL *url = [NSURL URLWithString:kGETUrl]; 

    NSData *data = [NSData dataWithContentsOfURL:url]; 
    [self getData:data]; 

} 

私のUIPickerviewerを隠して表示するボタンもあります。

-(IBAction)setPicker:(id)sender{ 
    if (pickview.hidden == TRUE) { 
     [pickview setHidden:NO]; 
     [pickview setDelegate:self]; 
     [pickview setDataSource:self]; 

     [pickview reloadAllComponents]; 
    }else { 
     [pickview setHidden:YES]; 
     [pickview setDelegate:self]; 
     [pickview setDataSource:self]; 
     [pickview reloadAllComponents]; 
    } 
} 

このメソッドを使用して配列を埋めます。

-(void) fillArray{ 
    dataArray = [[NSMutableArray alloc] init]; 
    for (int i=0; i<[json count]; i++) { 
     NSDictionary *info = [json objectAtIndex:i]; 
     [dataArray addObject:[info objectForKey:@"Use_naam"]]; 

    } 
    NSLog(@"%@\n",dataArray); 


} 

これを私のviewdidloadで呼び出します。

- (void)viewDidLoad 
{ 
    [super viewDidLoad]; 
    [self start]; 
    [self fillArray]; 


    // Do any additional setup after loading the view, typically from a nib. 
} 

私が間違っていることは誰でも知っていますか?

+0

問題は私の友人です。コードにはどのような参照が使用されていますか?あなた自身をコーディングしていますか? jsonとは何ですか?情報のデータも取得していますか? – Sarah

+0

まだそれを取得? – Sarah

+0

ありません、それはあなたがこれは私のdataArrayから出力されdataArray – steaphann

答えて

0

予想される行数に一致する疑問符が多数表示される場合は、通常、欠落している行のタイトルまたはビューを返すメソッドです。

これは、UIPickerViews delegateが設定されていないか(署名した)、または署名が正しくないことが原因です。

あなたの署名はオフです。それは正確にする必要があります:

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

最も一般的に人々はあなたがUIPickerViewdelegatedatasourceを設定する必要があることを忘れ。

関連する問題