전체 글 127

xcode 단축키

프로젝트 실행하기: cmd + R 네비게이터(swift 파일 목록 보여주는 맨 왼쪽 패널): cmd + 0 네비게이터 내의 탭을 하나씩 이동하려면 cmd + 1, cmd + 2, cmd + 3 ... 제일 오른쪽 패널: cmd + option + 0 제일 오른쪽 패널에서도 탭끼리 이동하려면 cmd + option + 1, cmd + option + 2, ... 하단 콘솔창: cmd + shift + Y 어시스턴스 에디터: ctrl + option + cmd + enter 파일 찾아 열기: cmd + shift + O (open) 코드 정렬: ctrl + I (indent)

[swift] static 키워드: static이 붙은 프로퍼티와 메소드

아래 swift 공식 문서들을 읽고 정리한 내용임. https://docs.swift.org/swift-book/LanguageGuide/Properties.html#ID264 Properties — The Swift Programming Language (Swift 5.6) Properties Properties associate values with a particular class, structure, or enumeration. Stored properties store constant and variable values as part of an instance, whereas computed properties calculate (rather than store) a value. Computed..

swift & iOS/swift 2022.02.14

[ios 개발] 컬럼이 2개인 UIPickerView 구현하기

아래 사진처럼 UIPickerView의 덩어리를 컬럼 또는 컴포넌트라고 부른다. 그래서 아래의 피커뷰는 컬럼(컴포넌트)이 2개인 피커뷰이다. 피커뷰를 사용하려면 컬럼의 갯수에 상관없이 반드시 UIPickerViewDataSource, UIPickerViewDelegate 라는 프로토콜을 채택해야 한다. UIPickerViewDataSource에는 피커뷰의 컬럼(컴포넌트)을 몇 개로 할 것인지와 각 컬럼에는 몇 줄이나 필요한지 설정할 수 있도록 도와주는 메소드들이 있다. UIPickerViewDelegate에는 각 컴포넌트가 가지고 있는 줄에 들어갈 컨텐츠(문자열이거나 UIView), 줄의 너비, 높이를 설정할 수 있는 메소드들이 있고 특히 피커뷰에서 스크롤을 돌려서 어떤 한 데이터를 선택하면 그 데이터의..

[ios 개발] xcode에서 code snippet 코드 스니펫 만들기

xcode에서 class나 struct 같은 키워드를 입력하기 시작하면 글자 밑에 작은 창이 뜨면서 선택할 수 있는 것들이 보인다. 잘 골라서 선택하면 굳이 스펠링을 다 적지 않아도 내가 원하는 것을 선택하면서 빠르게 프로그램을 작성할 수 있게 도와준다. xcode에 기본적으로 내장되어 있는 것들 외에 내가 특별히 자주 쓰는 코드 덩어리가 있다면 코드 스니펫을 직접 만들어 xcode에 등록할 수 있다. 1. 재사용할 코드를 블록 지정한 뒤에 오른쪽 마우스 - Create Code Snippet 선택 2. 새롭게 뜨는 창에서 아래와 같이 필요한 부분을 기입한다. 코드 내부에 파랗게 보이는 부분은 placeholder인데 이렇게 입력하면 '내용' 글자가 파랗게 변하면서 placeholder가 된다. 3. 만..

[swift] 기존 데이터 타입에 추가 기능 작성하기: extension

지하철이나 버스 노선을 필요에 따라 연장하거나 노선을 추가 개통하는 것처럼 스위프트에서도 기존 데이터 타입에 필요에 따라 새로운 기능을 추가하게 해주는 도구인 extension이 있다. 기존의 클래스, 구조체, 열거형, 프로토콜 및 기타 데이터 타입에 기능을 작성할 수 있다. extension은 아래처럼 사용한다. 또한 extension이 프로토콜을 채택할 수도 있다. extension이 프로토콜을 채택할 수 있다는 특징을 이용하여 viewController가 여러 개의 프로토콜을 채택하고 컨트롤러 내부 소스가 마구 복잡해질 때 extension을 만들고 컨트롤러 대신 이 extension이 필요한 프로토콜을 하나씩 채택한 후, 해당 extension 내부에서 채택한 프로토콜을 준수하는 방법으로 컨트롤러..

swift & iOS/swift 2022.02.08

[swift] 딕셔너리의 key, value를 배열로 만들기

딕셔너리에 for...in 으로 접근할 때 딕셔너리의 keys나 values 프로퍼티를 이용하면 딕셔너리의 key만 또는 value만 가지고 for ... in 을 사용할 수 있다고 했는데 https://what-whale-wants-to-say-is.tistory.com/105 [swift] 딕셔너리에 for...in 으로 접근하기 for...in 을 사용하여 딕셔너리의 항목에 접근할 수도 있다. var myDict = ["one":1, "two":2] for d in myDict { print(d) } /* (key: "two", value: 2) (key: "one", value: 1) */ 딕셔너리에는 순서가 없기 때.. what-whale-wants-to-say-is.tistory.com 사실 ..

swift & iOS/swift 2022.02.07

[swift] 딕셔너리에 for...in 으로 접근하기

for...in 을 사용하여 딕셔너리의 항목에 접근할 수도 있다. var myDict = ["one":1, "two":2] for d in myDict { print(d) } /* (key: "two", value: 2) (key: "one", value: 1) */ 딕셔너리에는 순서가 없기 때문에 매번 print 할 때마다 다르게 출력된다. 아무튼 위처럼 항목에 통채로 접근하는 것보다는 아래처럼 튜플을 사용하여 key와 value에 각각 접근하는 방법이 더 유용하다고 생각한다. for (k, v) in myDict { print("key: \(k), value: \(v)") } /* key: two, value: 2 key: one, value: 1 */ 이것 말고도 딕셔너리의 keys, values ..

swift & iOS/swift 2022.02.07