0

場所のフィードを解析して、NSMutableArray呼び出されたアイテムにします。私は次のようにaUIPickerViewを埋めています:

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
return 1;
}

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:(NSInteger)component {
return [items count];
}

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row     forComponent:(NSInteger)component {
return [items objectAtIndex:row];
}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
  inComponent:(NSInteger)component
{
id item = [items objectAtIndex:row];
NSString *occasion = [item objectForKey:@"name"];
location.text = occasion;
}

これを行うと、UIPickerView に値が表示されません。誰か助けてください。すべてが正しく接続されています

4

3 に答える 3

2

このようにしてみてください

- (NSInteger)numberOfComponentsInPickerView:(UIPickerView *)thePickerView {
    return 1;
}

- (NSInteger)pickerView:(UIPickerView *)thePickerView numberOfRowsInComponent:    (NSInteger)component {
return [items count];
}

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row     forComponent:(NSInteger)component {
id item = [items objectAtIndex:row];
NSString *occasion = [item objectForKey:@"name"];
return occasion;
}

-(void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row
  inComponent:(NSInteger)component
{
id item = [items objectAtIndex:row];
NSString *occasion = [item objectForKey:@"name"];
location.text = occasion;
}

これにより、ピッカーに文字列が表示されます

ピッカービューのデリゲートも設定

文字列の代わりに辞書全体を渡していると思います

于 2013-02-22T11:30:29.190 に答える
1

次のことを行います。

#1 デリゲートを適切に設定していることを確認してください。例えば。:

self.pickerView.delegate = self;

#2オケージョン文字列がnilでも空でもないかどうかを確認してください。

NSLog(@"%@", occasion);
于 2013-02-22T10:53:50.740 に答える
0

I'm guessing items array can be dictionary array. So, you should get the NSString inside NSDictionary.

- (NSString *)pickerView:(UIPickerView *)thePickerView titleForRow:(NSInteger)row     forComponent:(NSInteger)component {
return [[items objectForKey:@"name"] objectAtIndex:row];
}
于 2013-02-22T11:39:13.850 に答える