일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 개발
- TCA
- github
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- xcodecloud
- composablearchitecture
- uikit
- concurrency
- iOS 개발자
- SWIFT
- Firebase
- IOS
- regex
- Git
- Navigation
- Tuist
- test
- 모바일
- Alamofire
- network
- combine
- 정규표현식
- ObjC
- swiftdata
- ios18
- navigationsplitview
- iOS 13.0+
- xcode
- SWIFTUI
- UI
- Today
- Total
목록Swift (13)
iOS 개발 기록
KVC와 KVO란? KVC 정의 : Key-Value-Coding. Key는 String Key나 KeyPath를 이용해 간접적으로 데이터를 가져온다. 객체간 의존성을 낮추고, 결합도가 낮은 소프트웨어를 개발할 수 있게 한다. NSKeyValueCoding 프로토몰에 의해 정의한다. KVC 로직 : 1. Key와 일치하는 프로퍼티를 찾는다. 2. 일치하는 프로퍼티가 없다면 Key와 일치하는 인스턴스 변수를 찾는다. 3. 일치하는 프로퍼티나 인스턴스 변수가 있다면 적용, 없으면 'valueForUndiginedkey'나 'setValue:forUndefinedkey'를 호출한다. 사용 : 위와 같은 로직으로 동작하기 때문에 프로퍼티를 통한 직접 접근보다 느리며, runtime에 접근하기 때문에 Key가 일..
Reference : https://developer.apple.com/documentation/combine RX와 같은 비동기 이벤트를 처리하기 위한 프레임워크. iOS13부터 사용 가능하고, iOS13 이전 버전은 RX를 사용해야 한다. Publisher import Combine var IntArrayPublisher: Publishers.Sequence = [1,2,3].publisher RX의 Obsevable. 관찰 가능한 대상으로 데이터를 전달함. 전달할 때에 제네릭 형태로 으로 같이 보낸다. 에러 타입 중에 Never이 있는데, 얘는 어떠한 에러도 발생 안시킨다. Subscriber IntArrayPublisher.sink(receiveCompletion: { completion in s..
var body : some View { ... } [ 불투명 타입의 사용 이유 ] SwiftUI를 접하면서 이전에 못 본 some이라는 키워드가 눈에 띄었다. 여기서 some은 불투명 타입에 관련된 키워드로 프로퍼티나 함수 등의 반환 타입에 한정적으로 사용된다. 이때에 body가 가진 반환 타입은 반드시 some View여야 하는건 아닌데, some을 빼면 다음과 같은 오류가 발생한다. 첫번째는 프로토콜을 사용할 때에 타입을 유추할 수 없어서 발생하는 오류이고, 두번째는 타입 유추를 할 수 없기 때문에 뷰 프로토콜 조건이 만족되지 않아 발생하는 오류이다. 때문에 반환 타입을 정확하게 명시해주면 문제 없이 동작한다. 밑의 예에서 반환 값을 구조체 ProductRow라 명시하거나 Text로 명시하자 문제 ..