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

它不会记录标题,但如果我:

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

我得到:

title: Case

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

任何帮助表示赞赏。

4

4 回答 4

4

为了比较你必须使用的字符串isEqualToString

if ([part isEqualToString:@"Case"]) {
    NSLog(@"title: %@", part);
}
于 2012-08-17T23:05:09.333 回答
0

你不会像那样比较字符串。

isEqualToString:
于 2012-08-17T23:05:01.067 回答
0

尝试

if([part isEqualToString:@"Case"])
于 2012-08-17T23:05:59.283 回答
0

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

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

在字符串的情况下,有一个专门的版本叫做-isEqualToString:,所以你可以说

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

专门的函数主要是为了更好的类型检查NSString*而提供的,因为参数必须是一个 while-isEqual:允许 any id。除此之外,它的性能也会比一般-isEqual:情况稍微高一点,但这几乎不重要。

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

于 2012-08-17T23:06:03.753 回答