[objective-c] Objective-C의 문자열 비교

현재 SOAP를 통해 iPhone 앱과 통신하는 웹 서버가 설정되어 있습니다. GUID가 포함 된 문자열을 반환하고 있는데 이것을 다른 문자열과 비교하려고하면 이상한 결과가 나타납니다.

왜 이것이 발사되지 않습니까? 확실히 두 문자열이 일치합니까?

NSString *myString = @"hello world";

if(myString == @"hello world")
    return;



답변

-isEqualToString:메서드를 사용하여 두 문자열의 값을 비교합니다. C ==연산자를 사용하면 단순히 객체의 주소를 비교합니다.

if ([category isEqualToString:@"Some String"])
{
    // Do stuff...
}


답변

필요한 항목에 따라 대 / 소문자를 구분하거나 구분하지 않는 비교를 사용할 수 있습니다. 대소 문자 구분은 다음과 같습니다.

if ([category isEqualToString:@"Some String"])
{
   // Both strings are equal without respect to their case.
}

대소 문자를 구분하지 않는 것은 다음과 같습니다.

if ([category compare:@"Some String" options:NSCaseInsensitiveSearch] == NSOrderedSame)
{
   // Both strings are equal with respect to their case.
}


답변

아래 함수와 문자열을 비교할 수 있습니다.

NSString *first = @"abc";
NSString *second = @"abc";
NSString *third = [[NSString alloc] initWithString:@"abc"];
NSLog(@"%d", (second == third))
NSLog(@"%d", (first == second));
NSLog(@"%d", [first isEqualToString:second]);
NSLog(@"%d", [first isEqualToString:third]);

Output will be :-
    0
    1
    1
    1


답변