0
// When row is selected
- (void)pickerView:(UIPickerView *)pickerTimer didSelectRow:(NSInteger)row inComponent:(NSInteger)component {   
    int minutes;
    int seconds;

    if (component == 0) {
        if (row < 0){
            minutes = row;
        } else {
            minutes = 0;
        }
    }
    if (component == 1) {
        if (row < 0){
            seconds = row;
        } else {
            seconds = 0;
        }
    }
    NSLog([NSString stringWithFormat:@"%f %f %d", minutes, seconds, row]);
    if (minutes != 0 && seconds != 0){
        [buttonTimer setTitle:[NSString stringWithFormat:@"%@ minutes and %@ seconds", minutes, seconds] forState:UIControlStateNormal];
    // Yes, I am trying to set the label of a button.
    }
    if (minutes == 0 && seconds != 0){
        [buttonTimer setTitle:[NSString stringWithFormat:@"%@ seconds", seconds] forState:UIControlStateNormal];
    }
    if (minutes != 0 && seconds == 0){
        [buttonTimer setTitle:[NSString stringWithFormat:@"%@ minutes", minutes] forState:UIControlStateNormal];    
    }
    if (minutes == 0 && seconds == 0){
        [buttonTimerFarts setTitle:[NSString stringWithFormat:@"Set time before play starts..."] forState:UIControlStateNormal];
    }

}

コンソールには次のようなものが表示されます

0.000000 -1.993950 2751746

最初の3つのif(minutes seconds)ステートメントは、実行されません。

それで、あなたは何か間違っているのを見ることができますか?

4

1 に答える 1

3

コードでrow < 0minutesまたはsecondsが に設定されている場合のみrow。しかし、あなたの例では、rowは正であるためminutes、 とsecondsは両方とも0であり、最初の 3 つの if は決して真ではありません。

そして、Objective-C についてはあまり知りませんが、%f で整数を出力しているので、ナンセンスになるかもしれません。

于 2010-02-10T07:52:18.593 に答える