检查NavigationItem.title是否等于@“part”

时间:2012-08-17 23:01:23

标签: objective-c ios xcode sdk

NSString *part = self.navigationItem.title;
    if (part == @"Case") {
        NSLog(@"title: %@", part);
    }

并且它不记录标题但是如果我:

NSLog(@"title: %@", part);

我明白了:

title: Case

这是我的错误吗?我确定没有空格。

感谢任何帮助。

4 个答案:

答案 0 :(得分:4)

用于比较您必须使用的字符串isEqualToString

if ([part isEqualToString:@"Case"]) {
    NSLog(@"title: %@", part);
}

答案 1 :(得分:0)

你不比较那样的字符串。

isEqualToString:

答案 2 :(得分:0)

尝试

if([part isEqualToString:@"Case"])

答案 3 :(得分:0)

在Obj-C对象上使用==仅比较指针。这适用于任何obj-c对象。比较obj-c对象的标准方法是-isEqual:,如

if ([oneObj isEqual:anotherObj]) ...

对于字符串,有一个名为-isEqualToString:的专用版本,所以你可以说

if ([part isEqualToString:@"Case"]) ...

专门的函数主要用于更好的类型检查,因为参数必须是NSString*,而-isEqual:允许任何id。除此之外,它的性能也比一般的-isEqual:案例稍微高一些,但这几乎不重要。

其他一些类也有专门的比较函数,如-[NSData isEqualToData:]-[NSArray isEqualToArray:]和其他一些类。