본문 바로가기

Swfit107

String / Array 뒤집기 1. Array 뒤집기 var myArr1 = [1,2,3,4] // 1. reverse(): 요소들의 위치를 반전 시켜라. myArr1.reverse() // -> myArr1 자체의 요소 위치가 변경됨. print(myArr1) // [4,3,2,1] var myArr2 = [1,2,3,4] // 2. reversed(): 요소들의 위치가 이미 반전이 됨. let reversed = myArr2.reversed() // -> 요소 위치가 반전된 값이 반환됨. print(myArr2) // [1,2,3,4] print(reversed) // [4,3,2,1] NOTE: reverse() 메서드는 mutating 메서드이기 때문에 Struct인 Array의 요소에 변경을 줄 수 있는 것! https://.. 2023. 11. 29.
UnicodeScalar Swift에서 Character는 한개 이상의 UnicodeScalar로 구성되어 있습니다. Unicode는 숫자와 글자 (key & value)가 1:1로 맵핑된 형태의 코드입니다. 숫자 65는 대문자 A 이런 식으로 맵핑이 되어있습니다. 전세계의 모든 문자를 다루도록 설계된 표준 문자 전산 처리 방식입니다. 참고로 "U+"라는 접두어가 붙어 있으면 유니코드를 의미합니다. 만일 특정 String을 unicode로 사용하고 싶다면, let myString = "A" let scalar:Unicode.Scalar? = UnicodeScalar(myString) UnicodeScalar 이니셜라이저 파라미터로 String을 넘겨주면 됩니다. Character는 파라미터로 넘길 수 없어서, String으로 변.. 2023. 11. 28.
String index 값 정수로 얻기 String 변수에 firstIndex(of:) 혹은 startIndex등 index와 연관된 함수로 얻게 되는 값의 타입은 String.Index 입니다. Array의 index를 얻듯이 Int 값으로 얻고 싶다면 distance(from:to:)를 사용하면 됩니다. let text = "abcdefg" let indexOfA = text.firstIndex(of: "a")! // 상황에 맞춰서 적절한 Optional 처리 필요 let intIndex = text.distance(from: text.startIndex, to: indexOfA) print(intIndex) // Prints 0 2023. 11. 28.
입력 방법 및 자주 사용되는 functions 입력 받기 기본 readLine()으로 입력 받음. readLine()은 Optional(String) 타입 1. String 입력 받기 let myString = readLine()! //입력이 확실한 경우 강제 언래핑 사용. 2. Int 입력 받기 let myInt = Int(readLine()!)! // Int 이니셜라이저도 Optional(Int)를 반환하므로 언래핑 필요 3. 공백으로 구분되는 입력 받기 let stringsWithBlanks = readLine()! let stringArray: [String] = stringsWithBlanks.split(separator: " ") let intsWithBlanks = readLine()! let intArray: [Int] = intsWi.. 2023. 11. 25.
pod install 시 진행이 더뎠던 문제 지난번 좋은 사이드 메뉴 라이브러리 중 하나인 https://github.com/jonkykong/SideMenu 를 사용해 보려고 먼저 Example을 확인하기 위해 프로젝트 Clone을 하였음. Cocoapods를 사용하고 있는 프로젝트였기에, pod install을 진행해 준 상황에서, 특정 부분에서 진행이 막히는 문제가 있었음. 최하단에 "Cloning spec repo..." 부분인데, CocoaPodds/Specs가 무엇인지 찾아보니 stackoverflow 에 "Cocoapods will add that source by default if no other source is present. By adding your own source Cocoapods assumes everything ca.. 2023. 11. 15.
JSON 동일한 key에 다른 type의 value가 있는 경우 인코딩/디코딩 하기 JSON parsing을 하다보면, key의 이름은 동일한데 서로 다른 타입의 값을 가진 데이터들을 파싱해야할 때가 있습니다. 예를 들어서, "value"라는 key인데 하나는 int값을 가지고 다른 하나는 string값을 가집니다. // Int 타입인 경우 { "value": 1 } // String 타입인 경우 { "value": "hat" } 이러한 경우에는 Xcode에 에러가 보통 "typeMismatch"로 아래와 같이 나올 것입니다. typeMismatch( Swift.String, Swift.DecodingError.Context( codingPath: [ CodingKeys(stringValue: "ownedNfts", intValue: nil), _JSONKey(stringValue: ".. 2023. 11. 12.
반응형