NSString = @"HELLO"与使用initWithContentsOfURL获取相同字符串的NSString有什么区别

bud*_*ino 1 iphone xcode objective-c nsstring initwithcontentsofurl

我有一个从URL获取内容的字符串,当我尝试使用它时,它不会按照我认为应该的方式工作.

当我使用URL的内容初始化NSString时,如下所示:

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

但是当我尝试:

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

当我做同样的过程:

NSString *mySimpleString = @"HELLO";
if (mySimpleString == @"HELLO") { NSLog(@"IT WORKS"); } // This works
Run Code Online (Sandbox Code Playgroud)

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

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

knu*_*uku 5

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

打电话if ([strFromURL isEqualToString:@"HELLO"])来.