안녕하세요. 오늘은 가볍게 SwiftUI의 View의 구현부에 명시되어있는 어떤 개념에 대해서 가볍게 보려고 해요. 바로 메인스레드에서의 동작을 보장시켜주는 MainActor에 대해서입니다. Swift Concurrency, MainActor의 개념과 사용방식, MainActor가 사용되는 케이스와 더불어 async await 메서드를 함께 사용하는 몇가지 케이스에서 메인스레드의 동작유무를 보도록 할게요. SwiftUI, View protocol에 정의되어있는 @MainActorView에 대한 구현부에요. 아래 body를 보시면, @MainActor가 정의되어있는데요. @MainActor가 정의되어있는 영역 내의 코드는 메인스레드에서의 동작을 보장해요. 다만 그 안에 부분적으로 DispatchQueue...
SPM, Swift Package Manager는 iOS의 built-in swift 코드 배포 관리 도구입니다. 비교적 지원하는 라이브러리가 적긴 하지만, cocoaPods, carthage 처럼 프로젝트에 라이브러리를 연결하거나 프로젝트 코드 모듈화를 할때 사용이 가능한 방식입니다. 오늘은 SPM, Swift Package Manager 방식으로 library형태의 스위프트 패키지를 생성하고, 생성한 Local package를 프로젝트에 적용하는 방법을 가볍게 알아보겠습니다. iOS SPM(Swift Package Manager) 방식 패키지 생성 방법 먼저 command + space bar 를 누른 후, 터미널(terminal.app)을 실행해주세요. 이번 포스팅에서는 임의로 바탕화면에 폴더를 만..
SwiftUI에서 부모뷰가 자식뷰의 설정값을 감지할 수 있는 방법 중 하나로, PreferenceKey가 있어요. 오늘은 PreferenceKey protocol에 대한 개요와 함께 실제 사용 예시를 알아보도록 하겠습니다. iOS SwiftUI, PreferenceKey protocol은 무엇인가?PreferenceKey에 대한 Quick Help 정보를 먼저 보겠습니다. 요약 정보는 View에 의해 생산되는 값 이라고 합니다. protocol로 정의가 되어있고, PreferenceKey를 채택해서 사용하려면 몇가지 구현이 필요합니다. PreferenceKey를 사용하면, 하위뷰에서 preference viewModifier를 통해 preferenceKey 값을 수정하면, 그 값을 부모 뷰에서 감지할 ..
Xcode 14.0 이상 버전에서 프로젝트 생성 후, 최소 deployment target version을 iOS13 이상으로 설정하면 겪게 될 수 있는 "~ is only available in iOS 14.0" 컴파일 에러가 있습니다. 오늘은 이 오류에 대한 수정방법을 빠르게 알아보겠습니다. Xcode 14.0, 'main()' is only available in iOS 14.0 언제 이 컴파일에러가 발생하지? 제가 이 컴파일 에러를 경험하게 된 케이스를 공유드립니다. Xcode 14.2버전으로 SwiftUI 프로젝트를 생성했습니다. 그리고 프로젝트 설정 화면에서 Minimum Deployments를 iOS 13.0으로 수정합니다. App Target > General > Minimum Deploy..
- Total
- Today
- Yesterday
- swift reduce
- swift언어
- swift
- swift 기초
- 스위프트
- createML
- 자연어처리
- 백준알고리즘
- swift문제
- 프로그래머스
- Swift 알고리즘
- swift알고리즘
- 프로그래머스swift
- uikit
- 프로토콜
- swift string
- SwiftUI
- Collection
- 컬렉션
- ios
- 김프매매
- 백준swift
- Protocol
- 부스트코스
- publisher
- 개발자문서
- 알고리즘문제
- 알고리즘
- swift 문자열
- CoreML
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |