为什么我的String比较在iOS 6中不起作用?

时间:2012-10-06 18:10:30

标签: iphone ios6

  

可能重复:
  Understanding NSString comparison in Objective-C

我已经将这个简单的代码用于应用程序的多个版本,直到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];
}

1 个答案:

答案 0 :(得分:10)

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

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

编辑:我听到你尖叫“但它确实有用!它真的有效,直到iOS 6!” - 不。它没有,这只是偶然的事情。