在我的應用程序中有一個機制,要求在某個點上兩個NSString
s將是相同的做某事;出於某種原因,當我比較兩者時,即使它們是相同的,它仍然不能識別這一點。該代碼是這樣的:比較兩個NSStrings
NSString * aString = [self someMethodThatGetsAString];
NSString * bString;
BOOL areStringsTheSame = NO;
while (areStringsTheSame != YES) {
bString = [self someMethodThatTakesNSStringsFromAnArrey];
if (bString == aString) {
areStringsTheSame = YES;
{ }
我甚至插入一個NSLog()
並確信在某一點他們是相同的(而據我所知,這是==
代表什麼...),但仍然沒有進入if
來更改BOOL
值。
是否有另一種方法來做這種比較?我錯過了什麼嗎?
真正。並深入研究OOP的原理(具有相同屬性的兩個對象不一定是相同的對象)。否則,你會在開發人員生活中每天遇到這個問題:-) – vstrien
由於Objective-C使用字符串變量的方式,顯然'=='的工作原理同樣可以比較字符串的區分大小寫。例如,聲明一個字符串A和字符串B,並執行'==',你會發現它們都存儲在同一個地址中。 –