【问题标题】:SelectRow in ViewPickerViewPicker 中的 SelectRow
【发布时间】:2012-10-23 06:31:19
【问题描述】:

在 viewDidLoad 我有这个代码:

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

NSLog(@"capital %@", 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 animated:NO];

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

【问题讨论】:

    标签: objective-c ios


    【解决方案1】:

    这一行产生了if (self.aCapital = @"One") 的问题,您在if 语句中分配值。此表达式始终计算 true

    您需要使用

    比较值
    if (self.aCapital == @"One")
    

    if ([self.aCapital isEqualToString: @"One"])
    

    【讨论】:

    • 谢谢两位。现在值通过了,但 Select ViewPicker 继续不显示正确的行,为什么?
    • 是的,当然。我应该添加另一个 [self.Select selectRow:(在这里传递正确的行?) inComponent:0 animated:NO];在 if 条件的末尾(不要这么认为)。
    • 不,不需要这个,我觉得你的代码有问题,aCapital是什么Select是什么?
    • aCapital 是一个 NSString 变量。 Select 是 ViewPicker。
    • 我认为在viewDidLoad if (!self.aCapital) 这个条件评估为真。因此它不会进一步选择,因为你在 else 部分写了它
    【解决方案2】:

    您实际上分配了一个不比较的值。你应该输入:

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

    【讨论】:

    • 谢谢两位。现在值通过了,但 Select ViewPicker 继续不显示正确的行,为什么?
    猜你喜欢
    • 1970-01-01
    • 2020-04-05
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多