blendShapes 란? ARFaceAnchor에서 얼굴 표정, 움직임에 관련된 정보를 제공하는 딕셔너리. 선언 var blendShapes: [ARFaceAnchor.BlendShapeLocation : NSNumber] { get } ARFaceAnchor.BlendShapeLocation 눈, 코, 입 등 다양한 얼굴 요소에 대한 식별자로, 해당 요소의 움직임을 설명하는 수치값으로 사용함. 선언 struct BlendShapeLocation ARFaceAnchor에서 제공하는 blendShapes 딕셔너리는 특정 얼굴 요소의 움직임과 관련하여 감지된 얼굴의 표정을 나타냅니다. 딕셔너리의 각 키에 해당하는 값은 0.0(중립)에서 1.0(최대 이동) 사이의 중립을 기준으로 한 요소의 현재 위치를 나타..
GCD (Grand Central Dispatch) - DispatchQueue란? 앱의 기본 스레드 또는 백그라운드 스레드에서 작업 실행을 직렬 또는 동시에 관리하는 개체. 정의 class DispatchQueue: DispatchObject 디스패치 큐는 애플리케이션이 블록 객체 형태로 작업을 제출할 수있는 FIFO 큐이다. 디스패치 큐는 작업을 직렬 또는 동시에 실행합니다. 디스패치 큐에 올라온 작업은 시스템에서 관리하는 스레드 풀에서 실행됩니다. 앱의 기본 스레드를 나타내는 디스패치 큐를 제외하고 시스템은 작업을 실행하는 데 사용하는 스레드에 대해 보장하지 않습니다. 작업 항목을 동기 또는 비동기 적으로 예약할 수 있습니다. 작업 항목을 동기적으로 예약하면 해당 항목이 실행을 마칠 때까지 코드가 ..
1. 프로토콜(Procotol)이란? - 프로토콜(Protocol)은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. - 구조체, 클래스, 열거형은 프로토콜을 채택(Adopted)해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현할 수 있습니다. - 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다(Conform)고 표현합니다. - 타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야 합니다. 즉, 프로토콜은 기능을 정의하고 제시할 뿐이지 스스로 기능을 구현하지는 않습니다. 2. 정의 - Protocol 키워드를 사용하여 정의합니다. protocol protocolName { /* 정의부 */..
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..
- Total
- Today
- Yesterday
- Swift
- rxswift
- SWEA
- Reactivex
- rxswift6
- blendshapes
- 코코아팟
- C++
- 알고리즘
- infallible
- SwiftUI
- 프로그래머스
- 백준온라인저지
- cocoapods
- GraphDB
- Kotlin
- 안드로이드
- coreml
- Swift unowned
- boj
- DispatchQueue
- ios
- 카카오인턴십
- Swift weak
- blendshape
- 백준
- Lottie
- disposeBag
- ARKit
- UIHostingController
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |