Swift언어에서는 KVC, Key-Value-Coding을 지원하는데요. KVC란 객체의 값을 직접적으로 가져오는 것이 아닌, Key 또는 KeyPath 를 이용해서 간접적으로 접근해서 읽고 쓸 수 있는 기능입니다.오늘은 Swift언어로 구현한 struct, class structure의 멤버변수, 상수 값들을 WritableKeyPath, KeyPath으로 접근하고, 읽기 쓰기하는 연습을 해보겠습니다. Swift KVC(Key-Value Coding) KeyPath 사용 전, class, struct 구성하기 먼저, struct, class 몇개를 구성했습니다. Baby 구조체는 age, height 변수와 cat: Cat, dog: Dog를 갖습니다. class 타입의 Cat, struct 타입의 ..
AsyncSequence protocol에 대해서 알아보자 오늘은 AsyncSequence protocol을 알아보겠습니다. AsyncSequence protocol은 기존 Iteration이 가능하게 해주는 Sequence 프로토콜에 Async 성격이 추가된 프로토콜입니다. AsyncSequence를 준수하는 애들은 for try await in loop, for await in loop 등을 사용할 수 있게 되고, iOS 13.0이상에서 사용이 가능합니다. 선언은 이렇게 되어있습니다. rethrows는 일반적으로 throws closure를 인자로 갖고 있는 메서드에서 사용되는데, @rethrows는 그거랑 관련된 rethrow가 가능한것을 의미하는 annotation일것 같아요. (혹시 이거 명확하..
Custom NavigationBar를 만들기에 앞서서.. ViewModifier는 뭐지? ViewModifier의 문서 설명을 보면, 먼저 ViewModifier는 iOS 13.0 이상에서 사용 가능합니다. 또한 protocol로 되어있는데, ViewModifier protocol을 채택하고, body(content:) 메서드를 구현해야하구요. ViewModifier를 사용하면 원본 View에 새로운 속성이나 추가적인 UI 구성을 적용시킬 수 있도록 할 수 있습니다. ViewModifier를 잘 활용하면 중복해서 사용되는 SwiftUI View 속성, 구성 등을 재사용할 수 있는데요. 그럼 바로 ViewModifier를 만들고 나만의 Custom NavigationBar를 만들어 보겠습니다. Custo..
TCA는 Point-free에서 제안한 아키텍쳐로 The Composable Architecture라고 하며, Store의 State 변화에 따라 View를 업데이트해주는 상태 기반의 단방향 아키텍쳐입니다. 저는 개인적으로 개발한 앱에 TCA를 도입하여 사용하고 있습니다. 또한 화면 전환 이벤트를 편리하게 관리하기 위해 TCACoordinator를 함께 사용하여 개발하고 있습니다. 오늘은 제가 개발한 코드 일부를 보면서 TCA의 간략한 동작 방식을 돌아보고자 합니다. 최상위 뷰부터 해서 순차적으로 그림을 그려보는 것보다는 하위 뷰의 단편적인 이벤트 발생을 기점으로 TCA의 동작방식을 돌아보려고 합니다. 언제든 포스팅 내용에 대한 피드백 부탁드립니다. TCA에서 각각의 View는 Store를 갖는다. TC..
- Total
- Today
- Yesterday
- Collection
- 스위프트
- swift언어
- 개발자문서
- CoreML
- 프로토콜
- swift 기초
- 부스트코스
- swift 문자열
- Protocol
- 프로그래머스swift
- ios
- uikit
- swift reduce
- 백준swift
- 프로그래머스
- 컬렉션
- SwiftUI
- swift
- createML
- swift문제
- 백준알고리즘
- 알고리즘문제
- 알고리즘
- 김프매매
- publisher
- swift string
- 자연어처리
- swift알고리즘
- Swift 알고리즘
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |