2013-03-13 13 views
7

Szukałem w tym miejscu, w tym dokumentów Apple na NSString (może nie widziałem?), Ale próbuję znaleźć metodę w xCode dla sprawdzania, czy NSString nie jest równa coś. Podobnie jak jeśli NSString nie jest równy funkcji?

if (myNSSting = @"text" {... 
z wyjątkiem konkretnie chcę sprawdzić, czy nie jest równy "tekst".

+3

'nie (x równe y)' w [prawie zawsze] samo jak 'x notEquals y'. W każdym razie '=' nigdy nie jest poprawne (i '==' jest bardzo rzadko poprawne) do porównywania ciągów w Objective-C. –

+0

Retagged: Nic nie ma nic wspólnego z Xcode –

+1

Tak, '=' jest przypisaniem, a nie porównaniem. '==' porównuje adresy, więc będzie prawdą tylko wtedy, gdy porównujesz obiekt typu string z dokładnie tym samym obiektem typu string (nie tylko takim, który wygląda). 'isEqualToString' porównuje łańcuchy według zawartości znaków. (Zauważ, że w zasadzie to samo dotyczy zwykłych języków C, C++, Java i kilku innych języków.) –

Odpowiedz

31
if(![myNSString isEqualToString:@"text"]) 
3

Dla przypadku niewrażliwego porównać można obsługiwać przez:

if([@"Some String" caseInsensitiveCompare:@"some string"] == NSOrderedSame) { 
     // strings are equal except for possibly case 
    } 
Powiązane problemy