-3

可能重复:
了解 Objective-C 中的 NSString 比较

我已经在应用程序的多个版本中使用了这个简单的代码,并且在 iOS 6 之前,字符串比较已经起作用,但现在它失败了 - 为什么?

if(selectedCell.textLabel.text==@"Font"){
    NSLog(@"going to dofontpicker");
    [self doFontPicker];
}else if(selectedCell.textLabel.text==@"Color"){
    NSLog(@"going to do colorpicker");
    [self doColorPicker];
}
4

1 回答 1

10

因为它从来没有真正起作用。使用运算符比较字符串不起作用==,因为字符串(NSString 对象)是指针 - 进行数字比较只比较它们的地址,而不是它们的内容。你需要写

if ([someString isEqualToString:@"Font"]) {
    // do stuff
}

编辑:我听到你在尖叫“但它有效!直到 iOS 6 才真正有效!” - 没有。没有,只是意外而已。

于 2012-10-06T18:13:24.023 回答