NSString: IsEqual 대 IsEqualToString
사이의 차이점은 무엇입니까?isEqual:
그리고.isEqualToString:
?
클래스가 단순히 재정의하는 대신 IsEqualTo* 메서드(NSAray의 경우 IsEqualToArray, NSData의 경우 IsEqualToData의 경우 IsEqualTo* 등)를 추가하는 이유는 무엇입니까?isEqual:
?
isEqual:
문자열을 개체와 비교하고 반환합니다.NO
개체가 문자열이 아닌 경우.isEqualToString:
설명서에 나와 있듯이 두 개체가 모두 문자열임을 알고 있는 경우가 더 빠릅니다.
특별 고려 사항
두 개체가 모두 문자열이라는 것을 알고 있는 경우 이 방법은 동일성을 확인하는 더 빠른 방법입니다.
isEqual:
.
isEqualTo<Class>
동일성에 대한 특정 검사를 제공하는 데 사용됩니다.예를 들어, 배열에 동일한 수의 개체가 포함되어 있고 지정된 인덱스의 개체가 반환되는지 확인합니다.YES
를 위해isEqual:
시험.
또한, 당신만의 글을 쓰는 것.-isEqual:
그리고.-isEqualTo<Class>:
방법, 관례는 0 인수를 허용하는 것입니다.-isEqual:
그리고 0 인수에 대한 예외를 제기합니다.-isEqualTo<Class>:
@Abizern 및 @Jonathan Dann 답변 모두에 대해 확장합니다.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");
}
제 생각에는 EqualToString과 마찬가지로 약간의 성능 향상을 제공하는 것 같습니다. 전달된 내용을 유형 검사할 필요가 없습니다.
저는 이것을 강력히 추천합니다.isEqualToString의 성능 이점은 기본적으로 대부분의 애플리케이션에서 무시할 수 있습니다.그러나 저자가 언급하는 두 가지 다른 차이점이 있습니다.
- 형식 안전성
- 그 길
nil
처리됨
언급URL : https://stackoverflow.com/questions/1292862/nsstring-isequal-vs-isequaltostring
'programing' 카테고리의 다른 글
봄에 프로필별 @예약된 작업을 활성화하는 방법은 무엇입니까? (0) | 2023.08.09 |
---|---|
Windows에 Python 패키지를 설치하려면 어떻게 해야 합니까? (0) | 2023.08.09 |
출력 시 EPLUS 오류가 발생합니다.응답에 대한 XLSX (0) | 2023.08.09 |
MySQL 구성 파일 위치 - redhat 리눅스 서버 (0) | 2023.08.09 |
PHP Jquery Ajax 호출이 net::ERR_EMPTY_RESPON (0) | 2023.08.09 |