1

我有一个从 URL 获取内容的字符串,当我尝试使用它时,它并没有按照我认为的方式工作。

当我使用这样的 URL 内容初始化 NSString 时:

NSString *strFromURL = [[NSString alloc] initWithContentsOfURL:someURLReturningTextHELLO encoding:NSUTF8StringEncoding error:nil];
NSLog(@"%@",strFromURL); // returns "HELLO" // as expected

但是当我尝试时:

if (strFromURL == @"HELLO") { NSLog(@"IT WORKS"); } // This doesn't happen

当我执行相同的过程时:

NSString *mySimpleString = @"HELLO";
if (mySimpleString == @"HELLO") { NSLog(@"IT WORKS"); } // This works

所以,我的问题是,如何从 URL 获取内容,以便稍后在我的 IF 语句中使用?

*我是 Objective-C 的新手。谢谢!

4

3 回答 3

5

当您要求时,if (strFromURL == @"HELLO")您是在比较objects的相等性,而不是strings。当您调用两个常量字符串的比较时,它会起作用,而在比较对象中的字符串是否相等时,它会失败。

if ([strFromURL isEqualToString:@"HELLO"])改为打电话。

于 2011-02-21T10:30:39.340 回答
2

对于对象,==运算符测试指针是否相等。也就是说,如果指针都指向同一个对象,则这两个变量是相同的。从 URL 中获取的字符串与常量字符串不是同一个对象,因此它失败了。您想使用 NSString 的isEqualToString:方法,该方法测试字符串本身是否相等,而不是指针。

于 2011-02-21T10:39:23.663 回答
1

您可以尝试与 isEqualToString 方法进行比较

于 2011-02-21T10:29:18.603 回答