현재 SOAP를 통해 iPhone 앱과 통신하는 웹 서버가 설정되어 있습니다. GUID가 포함 된 문자열을 반환하고 있는데 이것을 다른 문자열과 비교하려고하면 이상한 결과가 나타납니다.
왜 이것이 발사되지 않습니까? 확실히 두 문자열이 일치합니까?
NSString *myString = @"hello world";
if(myString == @"hello world")
return;
현재 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