UIPickerViewのselectRowが動かないとき

例えば、ピッカーを2つ設置したとします。

一方のピッカーの選択によって、他方のピッカーの値をselectRow:inComponentによって変えるとき、
その他方のピッカーが動かないことがありました。

以下のようなコードです。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    /* ... */

    // 選択させる
    [pickerView selectRow:rowIndex inComponent:0 animated:YES];
    // 選択後の動作をさせる
    [self pickerView:pickerView didSelectRow:rowIndex inComponent:0];
}

ネットで情報がうまく得られなかったため、以下のようにperformSelectorを使ったところ、解決しました。

- (void)pickerView:(UIPickerView *)pickerView didSelectRow:(NSInteger)row inComponent:(NSInteger)component
{
    /* ... */
    _index = rowIndex;
    [self performSelector:@selector(selectPicker2:) withObject:self afterDelay:0.01];
}
- (void)selectPicker2:(id)sender
{
    [_picker2 selectRow:_index inComponent:0 animated:YES];
    [self pickerView:_picker2 didSelectRow:_index inComponent:0];
}