2

为什么这段代码不能在 Xcode 4.5(使用 ipad 6.0 模拟器)中工作,而它用于在 Xcode 4.4 上工作。(使用 ipad 模拟器 5.1)

- (IBAction)capitalDButtonTwo:(id)sender {
    if ([capitalDResultLabelTwo text] == @"+") {
        [capitalDResultLabelTwo setText:@"0"];
    } else {
        [capitalDResultLabelTwo setText:@"+"];
    }
}

这是一个按钮,它在第一次按下时将同一视图中标签中的文本设置为“+”,然后将文本设置为“0”,然后每次按下时设置为“+”。我想知道一个版本与另一个版本有什么不同,以至于这个简单的代码不起作用

4

1 回答 1

1

它不应该在任何一个 Xcode 版本中工作。您没有正确比较字符串:

该语句[capitalDResultLabelTwo text] == @"+"测试两个NSString对象是否是完全相同的对象。我敢肯定,您的意图是测试标签的内容是否与 相同"+",因此您需要使用[NSString isEqualToString:]

- (IBAction)capitalDButtonTwo:(id)sender {
    if ([[capitalDResultLabelTwo text] isEqualToString:@"+"]) {
        [capitalDResultLabelTwo setText:@"0"];
    } else {
        [capitalDResultLabelTwo setText:@"+"];
    }
}
于 2012-09-28T08:43:18.897 回答