0

viewDidLoad で、私はこのコードを持っています:

// ここには常に正しい文字列 aCapital 値 one, two, three, four が表示されます

NSLog(@"大文字 %@", self.aCapital);

if (!self.aCapital) {
  self.aCapital = @"One";
     } else {

if (self.aCapital = @"One") {
    [self.Select selectRow:0 inComponent:0 animated:NO];
    NSLog(@"One");
    return;
}

if (self.aCapital = @"Two") {
    [self.Select selectRow:1 inComponent:0 animated:NO];
    NSLog(@"Two");
    return;
}

if (self.aCapital = @"Three") {
    [self.Select selectRow:2 inComponent:0 animated:NO];
    NSLog(@"Three");
    return;
}

if (self.aCapital = @"Four") {
    [self.Select selectRow:3 inComponent:0 animated:NO];
    NSLog(@"Four");
    return;
}

     }

しかし、Select PickerView には正しい selectRow が表示されません。そのコードをすべて削除し、viewDidLoad に挿入するだけです

[self.Select selectRow:2 inComponent:0 animation:NO];

正しい Three 行が表示されます (1 と 2 の値も同じです)。代わりに selectRow:3 は表示されません 4 つが 1 つ!

4

2 に答える 2

1

この行は、ステートメントif (self.aCapital = @"One")内で値を割り当てる問題を引き起こします。ifこの式はtrue常に評価されます。

を使用して値を比較する必要があります

if (self.aCapital == @"One")

また

if ([self.aCapital isEqualToString: @"One"])
于 2012-10-23T06:49:45.230 に答える
0

実際に比較ではなく値を割り当てます。次のように入力する必要があります。

if (self.aCapital == @"One") {
    [self.Select selectRow:0 inComponent:0 animated:NO];
    NSLog(@"One");
    return;
}
于 2012-10-23T06:44:56.693 に答える