Programming/Swift
-
Swift - Foundation Collection & Swift CollectionProgramming/Swift 2021. 8. 28. 12:12
Array는 이전에 공부했던 Collection 프로토콜을 채용하고 있습니다. Array를 자세히 보기전에 먼저 Swift에서 제공하는 두가지 Collection에 대해서 알아보도록 하겠습니다. 컬렉션은 Swift Collection과 Foundation Collection으로 나눌 수 있습니다. Foundation Collection Foundation 프레임워크에서 제공하는 Collection입니다. 대표적으로 사용하는 Foundation Collection의 종류는 다음과 같습니다. NSArray NSDictionary NSSet Foundation Collection은 모두 class로 구현이 되어 있습니다. Class 이므로 Reference Types입니다. 그리고 NSObject를 상속한 타..
-
Swift - Sequence와 Collection (Sequence와 Collection의 차이)Programming/Swift 2021. 8. 11. 14:45
안녕하세요 :) 오늘은 Array, Dictionary, Set을 공부하기 전에 Sequence와 Collection Protocol에 대해서 공부해보도록 하겠습니다. 이번장은 이해하기 어려운 부분이 많이 있어서 이해하기 힘드시면 나중에 보시는 것을 추천드립니다. Sequence와 Collection은 프로토콜입니다. (프로토콜에 대해서는 이후에 자세히 다루겠습니다.) 그리고 Sequence 기반으로 Collection이 만들어져있습니다. 또한 Sequence 프로토콜에는 유용한 메서드들이 많이 선언되어 있습니다. contains, map, filter, first, drop, sorted, compare 등등 우리가 String에서도 유용하게 사용했던 메서드들이 많습니다. String에서 이러한 메서드..
-
Swift - CharacterSetProgramming/Swift 2021. 8. 7. 21:30
오늘 공부해볼 주제는 CharacterSet입니다. CharacterSet을 이용한 메서드에서 유용한 메서드가 있으므로 String을 공부하면서 같이 공부해보도록 하겠습니다. CharacterSet CharacterSet은 검색에서 사용하는 Unicode character의 Set입니다. 쉽게 말해서 Character들의 모임입니다. 그리고 이 CharacterSet을 파라미터로 전달해서 문자열을 검색하고 수정할 수 있습니다. CharacterSet을 사용하기 위해서는 먼저 생성할 줄 알아야겠죠?? 먼저 Swift에서 기본적으로 제공해주는 CharacterSet이 존재합니다. 종류가 생각보다 많습니다. 대부분 이름을 보면 유추할 수 있는 CharacterSet입니다. 그럼 바로 코드를 작성해 보겠습니다...
-
Swift - String CompareOptions (2)Programming/Swift 2021. 8. 5. 11:37
오늘은 지난 포스팅에 이어 compareOptions에 대해서 공부하도록 하겠습니다. numeric numeric option은 문자열 안에 있는 숫자를 숫자로 인식하여 비교할 때 사용합니다. 정수 2와 10을 비교하면 당연히 2 "10" 라는 결과가 나오게 됩니다. 만약 우리가 파일을 이름 순서대로 정렬하고자 한다면 문제가 발생합니다. File2.txt File3.txt File10.txt .... 이렇게 정렬하고 싶은데 문자열을 비교하여 정렬을 하면 "File10.txt"는 "File2.txt..
-
Swift - String CompareOptions (1)Programming/Swift 2021. 8. 4. 15:47
오늘은 이전에 사용하던 options 파라미터의 타입인 CompareOptions에 대해서 공부하도록 하겠습니다. compare(_:options:) 메서드에서 options 파라미터를 보면 String.CompareOptions 타입으로 선언되어 있습니다. String.CompareOptions는 NSString.CompareOptions 의 typealias입니다. (typealias에 대한 설명은 이전 포스팅을 참고해주세요.) 그럼 NSString.CompareOptions를 한번 찾아보겠습니다. 이름에 Compare만 들어갔다고 Comparing에만 사용되는 타입이 아닙니다. Searching, Comparing, Sorting에 사용됩니다. 생각해보면 compare(_:options:) 메서드에..
-
Swift - String Search (문자열 검색)Programming/Swift 2021. 8. 3. 11:19
오늘 공부해볼 주제는 검색입니다. 크게 어렵지 않고 지금까지 했던 것처럼 메서드를 잘 이용하면 쉽습니다. 그럼 시작하겠습니다! contain(_:) 가장 기본적인 메서드는 contains(_:) 입니다. 파라미터로 전달한 문자나 문자열이 존재한다면 true 없다면 false를 리턴해주는 메서드입니다. 위에 함수 헤더를 보면 Character를 받지만 StringProtocol, 클로저를 받는 메서드도 존재합니다. 그래서 파라미터에 "H"만 전달해도 되고 "Hello"를 전달해도 정상적으로 잘 작동하는 것을 확인할 수 있습니다. "S"는 존재하지 않기 때문에 false가 리턴되는 것을 볼 수 있습니다. 메서드를 보면 options 파라미터가 없습니다. Swift는 대소문자를 구분하기 때문에"hello"를 ..
-
Swift - Compare String (String 비교하기)Programming/Swift 2021. 8. 2. 13:27
안녕하세요 BeePeach입니다 :) 오늘 공부할 내용은 문자열 비교입니다. 문자열은 서로 같은지 다른지 뿐만 아니라 대소도 비교할 수 있습니다. 대소를 비교할 때 기준은 ASCII Code를 따릅니다. 10진수로 대문자보다 소문자가 32 크기 때문에 소문자와 대문자를 비교하면 소문자가 더 큽니다. 그럼 바로 코드를 보도록 하겠습니다. 가장 쉽게 비교하는 방법은 비교연산자를 사용하는 것입니다. 기본적으로 Swift는 대소문자를 구분하기 때문에 두 문자열이 다른 것을 알 수 있습니다. 우리가 생각하기에 B가 b보다 크다고 생각하기 쉽지만 ASCII 코드가 비교 기준이므로 대문자로 시작한 Beepeach가 beepeach보다 작은 것을 확인할 수 있습니다. compare(_:options:range:loca..
-
Swift - String Method, Property (Delete)Programming/Swift 2021. 8. 1. 20:56
오늘 String CRUD 중 D(Delete)에 대해서 공부를 해보겠습니다. remove(at:) remove(at:) 메서드는 Index의 문자를 삭제하고 리턴합니다. 중요한 점은 삭제만 하는게 아니라 삭제한 문자를 리턴해주는 것입니다. 헷갈리지 않아야 하는 부분은 삭제하고 남은 부분을 리턴해주는 게 아닙니다. 원본을 삭제시키고 삭제된 문자를 리턴하는 것입니다. @discardableResult 특성이 붙으면 return 값을 사용하지 않아도 경고가 표시되지 않습니다. 그래서 삭제만하고 리턴한 값을 사용하지 않아도 괜찮습니다. 주의할 부분은 정확한 Index를 전달해야 합니다. 만약 Index를 잘못 전달하게 되면 에러가 발생합니다. 마지막에 !를 삭제하기 위해서 endIndex를 사용했습니다. 하지..