답변:
isEqual:
문자열을 객체와 비교 NO
하고 객체가 문자열이 아닌 경우 반환 합니다. 문서에 나와 isEqualToString:
있듯이 두 개체가 모두 문자열이라는 것을 알고 있으면 더 빠릅니다 .
특별 고려 사항
두 객체가 모두 문자열이라는 것을 알고있는 경우이 방법은
isEqual:
.
isEqualTo<Class>
평등에 대한 특정 검사를 제공하는 데 사용됩니다. 예를 들어; isEqualToArray:
배열에 동일한 수의 객체가 포함되어 있고 지정된 인덱스의 객체 YES
가 isEqual:
테스트를 위해 반환 되는지 확인합니다.
또한 자신의 -isEqual:
및 -isEqualTo<Class>:
메서드 를 작성하기 위해 규칙은 nil 인수를 허용하고 nil 인수에 대한 -isEqual:
예외를 발생시키는 것입니다.-isEqualTo<Class>:
@Abizern 및 @ 조나단 댄 대답에 확장, 모두 isEqual
와 isEqualToString
와 작업 nil
값.
- (void)testStringEqual {
NSString *string = nil;
STAssertFalse([string isEqual:@"test"], @"NSString isEqual");
STAssertFalse([string isEqualToString:@"test"], @"NSString isEqualToString");
// Note that these both return NO
STAssertFalse([string isEqual:nil], @"NSString isEqual");
STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");
string = @"test";
STAssertTrue([string isEqual:@"test"], @"NSString isEqual");
STAssertTrue([string isEqualToString:@"test"], @"NSString isEqualToString");
STAssertFalse([string isEqual:nil], @"NSString isEqual");
STAssertFalse([string isEqualToString:nil], @"NSString isEqualToString");
}
나는 이것을 강력히 추천 한다 . isEqualToString의 성능 이점은 기본적으로 대부분의 응용 프로그램에서 무시할 수 있습니다. 그러나 저자가 언급 한 다른 두 가지 차이점이 있습니다.
nil
처리 방법