0

2 列の UIPickerView を実装しました。最初の列の値を取得し、double 型の minutesDuration 値に設定し、2 番目の列から secondsDuration という名前の別の double 値を取得したいと考えています。次に、分を秒に変換し、totalDuration という名前の double 値で 2 つの値を合計します。これが私の didSelectRow メソッドです:

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

    NSString *minute =[[NSString alloc] init];
    NSString *seconds = [[NSString alloc] init];

    //Here, like the table view you can get the each section of each row if you've multiple sections
    if(component == 0){
        int i =row;
        int j =row;

            minute = [NSString stringWithFormat:@"%@", [minutesArray objectAtIndex:i]];
            seconds = [NSString stringWithFormat:@"%@", [secondsArray objectAtIndex:j]];
            double minutesDuration = [minute doubleValue] * 60;
            NSLog(@"%f", minutesDuration);
            double secondsDuration = [seconds doubleValue];
            totalDuration = minutesDuration + secondsDuration;
            NSLog(@"%f", totalDuration);
    }
    else if (component == 1){
        int i =0;
        int j =row;
        minute = [NSString stringWithFormat:@"%@", [minutesArray objectAtIndex:i]];
        seconds = [NSString stringWithFormat:@"%@", [secondsArray objectAtIndex:j]];
        double minutesDuration = [minute doubleValue] * 60;
        NSLog(@"%f", minutesDuration);
        double secondsDuration = [seconds doubleValue];
        NSLog(@"%f", secondsDuration);
        totalDuration = minutesDuration + secondsDuration;
        NSLog(@"%f", totalDuration);
    }
}

アプリを実行すると、1 of 2 main が表示されます: - 値が追加されません - 2 番目の列の値が変更されていなくても、2 つの値が追加されます Btw 合計期間はヘッダー ファイルで宣言されます。

4

1 に答える 1