swift
-
Swift - Optional, 옵셔널swift 2023. 3. 13. 17:24
옵셔널이란? 값이 없을 수도 있음을 나타내는 타입이다. 특정 타입을 감싸는 형태이며, 해당 타입이 값이 없을 수도 있음을 의미한다. 사용 시, 프로그래머가 값이 없을 경우를 처리하도록 한다. 왜 옵셔널을 사용해야 할까? Swift 는 safety 안전을 중시하는 언어이다. https://developer.apple.com/kr/swift/#safety 프로그래밍 중 값이 없음을 나타내는 Null 을 다루다, 예상 못한 예외와 오류를 만나기 쉽다. Swift는 특정 타입들만이 값이 없을 수도 있도록 정의하며, 반대로 다른 타입들은 값이 있음을 보장한다. 값이 없을 수도 있는 타입들은 Optional, 옵셔널 타입이라 한다. 옵셔널 타입을 다룰 시 안전을 위해 Swift 언어 차원에서 제약을 둬, 값이 없음..
-
UIView - touch 관련 메소드, 멀티 터치swift 2021. 7. 13. 16:50
터치 관련 메소드 중 4개로, 자주 사용되는 것들이다. touchesCancelled 가 호출되는 예는 멀티 터치가 들어올 경우가 있다. 아이폰은 멀티 터치를 5개까지 지원하는데, 이를 넘어서 들어올 경우 이 메소드가 호출이 되며 터치가 캔슬된다. * xCode 앱 시뮬레이터에서 멀티터치 하는 법 - UIView의 우측 인스펙터 창에서 Multiple Touch를 활성화 한다. - 시뮬레이터에서 opt 키를 누르고 마우스를 클릭한다. - 시뮬레이터에선 멀티 터치가 2개 까지 가능하다.
-
swift style guide - Namingswift 2021. 6. 20. 17:30
서술, 설명적이며 일관된 방식의 네이밍은, 소프트웨어의 가독성을 높이며 이해하기 쉽도록 만든다. API Design Guidelines 에 작성된 Swift 네이밍 컨벤션을 사용하라. - 간결하게 줄여쓰는 것보다 명확하게 작성해야 한다. ( 서술, 설명하듯 ) - snake_case 가 아닌 camelCase 를 사용한다 ex) first_name firstName - 타입, 프로토콜 의 경우엔 UpperCamelCase 를 사용한다. 이 외엔 lowerCamelCase를 사용한다 - 불필요한 단어는 제외하고, 필요한 모든 단어는 포함한다. ex) 중복제거 - 타입 이 아닌, 역할에 기반해 작성해야 한다. - factory methods 는 make 로 시작한다. - 메소드들의 side effects 를..
-
swift - escaping closure, result typeswift 2021. 6. 3. 20:15
1. getPhotos()는 searchTerm과 completion 매개변수를 받는다 2. searchTerm으로 사진을 검색한다. 3. 사진을 검색한 결과의 count에 따라 클로저 completion 에게 Result 를 전달한다. 3-1. 성공 시 Result case .sucess 와 photos: [Photo] 를 completion 클로저에게 전달한다. (함수가 끝난 후 실행될 클로저에선 .success 에 해당하는 분기처리를 한다. ) 3-2. 실패 시 Result case .failure 와 noContent: MyError 를 completion 클로저에게 전달 (함수가 끝난 후 실행될 클로저에선 .failure 에 해당하는 분기처리를 한다. * Escaping Closure - 클로저..
-
swift - backslash dot \.swift 2021. 5. 11. 21:39
문제 풀이 도중 다른 사람의 코드를 확인하다 이런 코드를 찾았다. 그런데 과 wholeNumberValue, 백슬래쉬 닷 wholeNumberValue 부분이 생소해 찾아보았다. wholeNumberValue 는 캐릭터가 한문, 특수기호 등을 포함해 숫자라면 Int? 형으로 반환하는 메소드다. \. 백슬래쉬 닷 은 key-path-expression 이다 \ . 이런 식으로 사용되는데, TYPE의 경우 타입 추론이 가능하여서, 추론이 가능한 상황이라면 백슬래쉬 닷 \. 이런 식으로 사용이 가능하다. KeyPath에 더 자세히 기술된 사이트 알아본 내용으로 이 코드를 이해하면, n-digit*9 ..< n 범위의 값을 가진 Array을 탐색하는데, String(원소)를 compactMap을 통해 Chara..