일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
- graceful termination
- 우아한 앱종료
- 이니셜라이저
- 클로저
- 레이아웃 사이클
- 스위프트
- scroll indicator
- without Storyboard
- SWIFT
- refreshControl
- 스크롤 인디케이터
- 알뜰폰
- viewDidAppear
- loadView
- IOS
- 스토리보드
- viewcontroller
- 런치 스크린
- do try catch
- indicator style
- 세븐모바일
- git
- 뷰컨
- FeedbackGenerator
- viewDidDisappear
- swift haptic
- viewWillDisappear
- 아이폰
- 깃헙
- exit()
- Today
- Total
목록스위프트 (6)
예거's Bicycle for the mind

iOS를 공부하면서, 늘 스토리보드를 위주로 UI를 구성하다가, 처음으로 스토리보드 없이 UI 화면을 만들어야 하는 과제가 주어졌습니다. 구글링을 하며 여러 블로그를 참고했는데, 정확하지 않은 정보가 많아 시행착오를 꽤 겪었습니다. 이번 글에서는 스토리보드 없이 UI를 만드는 구체적인 프로세스와 시행착오를 공유해보고자 합니다. 1️⃣ 먼저, Main.storyboard 파일 삭제하기 주제와 관련해서 구글링을 해보면 Main.storyboard 파일을 삭제해야 한다는 내용은 공통적으로 나옵니다. 긴 말이 필요 없겠죠. 디렉토리에서 Move to Trash 해줍니다. 2️⃣ info.plist 수정하기 그다음 순서는 프로젝트의 메타 데이터가 담긴 info.plist 파일을 수정하는 것인데요. 개발 진행 상황..

네임스페이스(NameSpace) 란? 네임스페이스는 연관된 값들을 한 공간에 이름을 지어 모아둔 공간을 말한다. 쉽게 예를 들면, 우리가 '서랍'에 물건을 보관할 때, 그 안에 뭐가 들었는지 '라벨링'하는 것과 비슷하다. 유사한 물건들을 모아둠으로써, 관리(유지보수)가 쉬워지고 재사용도 편리해진다. 네임스페이스를 통해서만 문자열에 접근할 수 있게 만드는 캡슐화(Encapsulation) 방법이기도 하다. 코딩을 할 때도 이런 네임스페이스를 잘 만들어두면, 하드코딩도 방지하고 코드 가독성도 좋아진다. 이번 글에서는, 출력을 위해 사용할 문자열(String)들을 모아두는 네임스페이스를 만든다고 가정해보자. 네임스페이스를 만드는 방법을 총 6가지로 정리해보겠다. 사실, 6가지 보다 더 다양한 방법으로 네임스페..

'456억 원' 이라는 큰 숫자를 Int 타입으로 써보자. // 큰 숫자는 가독성(Readability)이 떨어진다. var bigNumber: Int = 45600000000 print(bigNumber - 10000) // 45599990000 이렇게 매우 큰 숫자는, 코드에서 가독성(Readability)이 떨어진다. 읽기가 불편하다. 시간이 조금 더 걸린다. 코드가 아니라, 일반적인 환경에서는 우린 콤마(,)를 활용해 숫자의 자릿수 구분을 할 수 있다. 456억 원은 45,600,000,000 원으로 표시할 수 있다. 하지만 코드에서는 숫자 사이에 콤마(,)를 넣을 수 없다. // 숫자 사이에 콤마(,)를 넣을 순 없다. var bigNumber: Int = 45,600,000,000 // err..

스위프트엔 고차함수(Higer-order function)라는 게 있다. 엥? 고차함수?? 고등학교 때 배웠던 2차, 3차, 4차 함수 처럼, 차수가 2 이상인 함수를 말하는 건가 싶었다. 고차함수가 왜 갑자기 스위프트에 등장하나 싶었는데, 그때의 그 그래프나 방정식을 풀기 위해서가 아니었다. 위 이미지의 고차함수들을 스위프트의 용어를 사용해서 나름대로 해석해보겠다. 먼저, y 는 리턴값으로 이해할 수 있다. 어떤 계산을 거쳐서, 최종적으로 나오는 값이니까. 그리고 x 는 파라미터로 볼 수 있다. 어떤 값을 집어넣느냐에 따라, 리턴값에 영향을 주니까. a, b, c 등의 '계수'는 constant, 즉 상수로 볼 수 있다. 스위프트에서 let 으로 선언하는 값들 말이다. 변하지 않는 숫자라고 가정한다. ..

스위프트 Array(배열)은 순서가 있는 Ordered Collection Type 이다. Array를 2중으로 만들어서 정렬(sort)을 공부해보자. 먼저, sort() 와 sorted() 정렬 메소드의 차이를 알아야 한다. sort 는 원본값에 영향을 주고 리턴값이 없다. sorted 는 원본값에 영향을 주지 않고, 새로운 리턴값을 반환한다. 즉 let 으로 선언한 배열이 있다면, sort 메소드를 사용할 수 없다. let 으로 선언한 배열은 'immutable value' 가 된다. 즉, 변경이 불가능한 값! 따라서 원본을 건드리는 sort() 메소드를 쓸 수 없다. 만약 원본이 변경되길 원하지 않는 배열이 있다면, let 으로 선언한 뒤 sorted() 메소드로 새로운 값을 만들어 쓰는 게 좋다...

스위프트의 Dictionary 는 Key와 Value를 pair(짝꿍)으로 묶어서 관리할 수 있는 Collection 타입이다. Array(배열)와 다르게 순서가 없다. (Unordered Collection) // 실험용 딕셔너리 생성 var items = [1: "운동화", 2: "티셔츠", 3: "목걸이", 4: ""] // 키값을 통해 딕셔너리 안의 value를 꺼내올 수 있다. items[1] // Optional("운동화") items[4] // Optional("") // 만약 딕셔너리에 존재하지 않는 키값이 입력되면, nil이 반환된다. item[0] // nil 딕셔너리에서 키값(key)을 통해 value를 꺼내오면, 그 반환값은 기본적으로 옵셔널(Optional)이 된다. 딕셔너리에 존..