作者uranusjr (←这人是超级笨蛋)
看板MacDev
标题Re: [问题] 新手请教 isEqualToString 和 == 的差别
时间Wed Nov 13 01:17:19 2013
※ 引述《RSAES (RR)》之铭言:
: 最近初学iphone程式设计
: 正在看stanford的课程
: 第一章提到要比较两个 NSString
: 要用 [str1 isEqualToString:str2] 而不是 str1 == str2
: 但老师只讲一秒钟就带过了
: 我google了一下,好像意思是 == 会去比位址,isEqualToString才是真正比内容
: 但我尝试不出可以看出两者差别的testcase
: 想请问一下大家我的认知是对的吗?
对
: 另外有甚麽case能明显看出两者差别吗?
NSString *foo = [[NSString alloc] initWithString:@"baz"];
NSString *bar = [[NSString alloc] initWithFormat:@"%@%@%@", @"b", @"a", @"z"];
NSLog(@"foo == bar: %d", (foo == bar));
NSLog(@"[foo isEqualToString:bar]: %d", [foo isEqualToString:bar]);
编译器很聪明, 你直接给两个常数的话它会最佳化, 所以你的尝试才会失败
: 感谢!
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 218.161.94.175
※ 编辑: uranusjr 来自: 218.161.94.175 (11/13 01:18)
1F:推 RSAES:了解了 感谢!! 11/13 11:23
2F:推 gds21:我也有同样疑问。了解了,谢谢! 11/16 22:07