0

在 viewDidLoad 我有这个代码:

// 这里总是显示正确的字符串 aCapital 值一、二、三、四

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];

显示了正确的三行(对于一和二值相同)。取而代之的是 selectRow:3 不显示四,而是一!

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 回答