SwiftUI에서 View protocol View { associated type Body: View var body: Self.Body { get } } View 타입은 UIView와 달리 프로토콜로 선언된다. Typealias Body = Never Body는 무한 재귀호출이 일어나지 않도록 Never 타입이 사용된다. UIHostingController Class UIHostingController : UIViewController where Content : View UIHostingController는 UIViewController를 상속받고, 뷰 프로토콜을 준수하는 제네릭 매개변수 Content를 전달받는 제네릭 클래스. 즉, SwiftUI를 이용해 만들어진 뷰를 UIKit의 개발환경에서 사..
애플 HIG 에 ActionSheet는 "현재 컨텍스트와 관련된 두 개 이상의 선택 항목을 표시하는 특정 유형의 경고"라고 설명합니다. iOS 에서 ActionSheet 는 UIAlertController를 이용해 만들 수 있습니다. let actionSheetController = UIAlertController(title: "제목", message: "메세지", preferredStyle: .actionSheet) //제목, 메세지 없이 let actionSheetController = UIAlertController(title: nil, message: nil, preferredStyle: .actionSheet) 먼저 UIAlertController에서 actionSheet 스타일을 선택해 Act..
Swift의 클로저는 다양한 표현법을 사용할 수 있습니다. 먼저, 기본적인 클로저의 표현법을 통해 구성한 함수입니다. func calculate(a: Int, b: Int, method: (Int, Int) -> Int) -> Int { return method(a, b) } var result: Int 클로저의 다양한 표현법에 대해 알아보겠습니다. 1. 후행 클로저 - 클로저가 함수의 마지막 전달인자일 때, 마지막 매개변수 이름을 생략한 후 함수 소괄호 외부에 클로저를 구현할 수 있습니다. result = calculate(a: 10, b: 10) { (left: Int, right: Int) -> Int in return left + right } print(result) // 20 출력 2. 반환타..
Swift에는 일종의 코드의 블럭인 '클로저'가 존재합니다. 클로저는 일급 시민이기 때문에 변수, 상수 등으로 저장할 수 있고 전달 인자로 전달이 가능합니다. 함수는 이름이 있는 클로저의 일종이라고 볼 수 있습니다. - 클로저는 매개변수와 반환값을 가질 수 있습니다. - in 이라는 키워드로 실행코드를 작성해줍니다. { (매개변수) -> 반환타입 in // 실행코드 } // sum이라는 상수에 클로저를 할당 let sum: (Int, Int) -> Int = { (a: Int, b: Int) in return a + b } let sumResult: Int = sum(1, 2) print(sumResult) // 3 출력 - 클로저는 함수의 전달인자로 사용할 수 있습니다. - 주로 함수의 실행이 완료된 ..
enum은 타입이므로 대문자 카멜케이스를 사용하여 정의합니다. Swift의 열거형은 각 case 자체가 고유의 값입니다. enum 이름 { case 이름1 case 이름2 case 이름3, 이름4, 이름5 // ,로 구분해 선언 가능 } // 열거형 생성 enum Weekday { case mon case tue case wed case thu,fri,sat,sun } // 열거형 사용 var day: Weekday = Weekday.mon // 타입이 명확하다면 .case 표현도 가능 day = .tue print(day) // tue 출력 - case 에 모든 값을 구현하면 , Default 를 구현하지 않아도 됩니다. -하나의 case 라도 구현하지 않으면 Default 를 포함해야합니다. // d..
1. 구조체 - 구조체는 값(Value)타입입니다. - Swift의 구조체는 타입을 정의하는 것이기 때문에 대문자 카멜케이스를 사용합니다. - struct 키워드를 사용해 정의 할 수 있습니다. struct 구조체이름 { //구조체 내용 } - 프로퍼티는 인스턴스 변수를 의미합니다. - 메서드는 구조체 안에 들어있는 함수를 의미합니다. - var로 선언하면 가변 프로퍼티입니다. - let로 선언하면 불변 프로퍼티 입니다. - static 키워드를 사용하면 타입 프로퍼티/메서드로 사용할 수 있습니다. struct Example { var mutableProperty: Int = 100 //가변 프로퍼티 (값 변경 가능) let immutableProperty: Int = 100 // 불변 프로퍼티 (값 변..
Swift에선 옵셔널이란 키워드를 사용합니다. 1. 옵셔널이란? - 값이 있을 수도, 없을 수도 있음을 표현합니다. - nil이 할당될 수 있는지 없는지를 나타냅니다. // someOptionalParm에 nil이 할당 될 수 있다. func someFunction(someOptionalParam: Int?) { // .... } /// someOptionalParm에 nil이 할당 될 수 없다. func someFunction(someOptionalParam: Int) { // .... } 2. 옵셔널을 쓰는 이유 1) 명시적 표현 - nil의 가능성을 코드만으로 표현이 가능합니다. - 위의 이유로 문서/주석 작성 시간을 절약할 수 있습니다. 2) 안전한 사용 - 전달받은 값이 옵셔널이 아니라면 nil..
Swift에서 반복문은 for-in / while / repeat-while 구문으로 구현할 수 있습니다. 1. for-in 구문 - 타 언어의 for-each 구문과 유사하게 사용할 수 있습니다. - Dictionary의 경우 iteration 아이템으로 튜플이 들어옵니다. // for-in 구문 기본 형태 for item in items { // 실행 코드 } var integers = [1, 2, 3] let people = ["KK": 10, "TT": 15, "OO": 12] for integer in integers { print(integer) } // Dictionary의 item은 key와 value로 구성된 튜플 타입 for (name, age) in people { print("\(n..
- Total
- Today
- Yesterday
- blendshapes
- Swift weak
- rxswift6
- rxswift
- ios
- SWEA
- SwiftUI
- Reactivex
- 안드로이드
- disposeBag
- UIHostingController
- coreml
- Swift
- Swift unowned
- boj
- C++
- infallible
- Lottie
- 백준온라인저지
- blendshape
- GraphDB
- 프로그래머스
- 코코아팟
- 알고리즘
- 백준
- DispatchQueue
- cocoapods
- 카카오인턴십
- Kotlin
- ARKit
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 | 31 |