본문 바로가기

Swift

[Objective-C] rangeOfString vs containsString

728x90
- (NSRange)rangeOfString:(NSString *)searchString;

이제 프로젝트 코드를 본격적으로 Swift 전환을 시작해보려한다..

뷰보다는 Util이나 Extension 들을 먼저 바꾸고 적용하는 게 좋을 것 같았고,

어제는 UIColor Extension Function들을 Swift로 바꿔 적용 완료!

 

오늘은 StringUtil..? 이라는 objc 클래스의 메서드들을 정리해보려함.

내가 알기로, 기본 제공되는 메서드가 있는데, 문자열에 특정 문자나 문자열 포함 여부를 체크하는 게 별도로 정의되어 있길래 찾아보았다.

 

Swift에 문자열에 특정 문자나 문자열 포함 여부를 체크하는데에 쓰이는 메서드가 있다.

옵씨버전도 있다.

func contains(_ element: Self.Element) -> Bool
- (BOOL)containsString:(NSString *)str;

 

2016년에.. 생성된 StringUtil 클래스는 rangeOfString 메서드를 쓰고 있었다.

- (NSRange)rangeOfString:(NSString *)searchString;

 

objc에서는 위와 같이 사용할 수 있다.

rangeOfString 대신 containsString으로 바꿔줘도 문제될 게 없을 것 같지만, 혹시 몰라서 찾아봄!

 

 

찾아보니, 문서에 명시된 지원 버전대로, containsString은 iOS 8.0 이상에서 안정적이라고 함.

그래서 7.0 이하의 버전에서는 문제가 될 수도 있다고 한다.

근데 iOS 7.0이면.. 아주 오래오래전 버전이고 앱 최소지원 버전보다 한참 아래이므로 containsString으로 바꿔도 괜찮을 것 같다!!

728x90

'Swift' 카테고리의 다른 글

[Swift] 연산자  (0) 2023.11.08
[Swift] 변수와 상수  (0) 2023.11.07
[Swift] Swift 언어적 특징  (0) 2023.11.06
static vs class method  (0) 2022.08.08
[Swift] 옵셔널체이닝  (0) 2022.02.19