0

私が開発しているアプリには、スケジュールのリストがあり、リストUIPickerViewの6番目のアイテムが選択されたらボタンを有効にしたいです。

私はこのコードを持っていますが、動作していません

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
    // Handle the selection
        [trainSchedule setText:[NSString stringWithFormat:@"%@",[schedArray objectAtIndex:[pickerView selectedRowInComponent:0]]]];
        if ([schedArray objectAtIndex:[schedArray objectAtIndex:[pickerView selectedRowInComponent:6]]]) { sendTrainRequest.enabled = YES; } else { sendTrainRequest.enabled = NO; }     
}

私もこの警告を持っています...

Incompatible pointer to integer conversion sending 'id' to parameter of type 'NSUInteger' (aka 'unsigned int

どうすれば自分がしたいことをすることができますか?

4

2 に答える 2

0

問題はif文にあると思います。あなたが言おうとしていることを正しく解析している場合は、ピッカーの 6 番目の項目が選択されている場合に sendTrainRequest.enabled を YES に設定する必要があります。あなたの if ステートメントは混乱していますobjectAtIndex。整数を送信する必要があるときに、オブジェクトを schedArray のメソッドに送信しているため、警告が表示されます。これを試して:

- (void)pickerView:(UIPickerView *)pickerView didSelectRow: (NSInteger)row inComponent:(NSInteger)component {
// Handle the selection
    [trainSchedule setText:[NSString stringWithFormat:@"%@",[schedArray objectAtIndex:[pickerView selectedRowInComponent:0]]]];
    if ([pickerView selectedRowInComponent:0] == 5) 
        { sendTrainRequest.enabled = YES; } 
    else 
        { sendTrainRequest.enabled = NO; }     
}

このスニペットでハードコーディングされた 5 は、ゼロ参照であるため、ピッカー ビューの 6 番目のアイテムとして評価されることに注意してください。

于 2013-07-16T04:28:37.463 に答える