看板 MacDev 關於我們 聯絡資訊
※ 引述《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)
RSAES:了解了 感謝!! 11/13 11:23
gds21:我也有同樣疑問。了解了,謝謝! 11/16 22:07