목록전체 글 (179)
study record
Struct 내 Class 프로퍼티는 복사될까? Struct는 값 타입으로 값을 복사한다.그렇다면 Struct 내의 Class 프로퍼티는 복사될까 아니면 참조 주소 값을 공유하게 될까? 정답은 Struct 내의 Class 프로퍼티는 참조 주소 값을 공유한다.이에 다음과 같은 문제가 발생할 수 있다. 📌 "Struct의 class 프로퍼티에서 생길 수 있는 문제?1. 문제 개요Swift에서 struct(값 타입) 내에 클래스(참조 타입) 프로퍼티를 포함할 때, 참조 타입이므로 원본이 공유될 수 있는 문제가 있다.특히 클래스가 상속(subclassing) 될 수 있는 경우, 원치 않는 변경이 발생할 수 있다. 2. 어떤 문제가 발생할 수 있나?만약 struct 내에 참조 타입인 클래스 프로퍼티가 있고, ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bg0RWk/btsLKFvTQos/zEjRMOKL5SenOEHxYRuc90/img.png)
RxSwift에서 유용하게 사용하는 flatMapLatest (가장 최근에 생성된 Observable의 값만 만들고자 할 때)Combine에서 map + switchLatest를 통해 flatMapLatest처럼 사용하기 알아봅시다! map이 단순하게 값을 변형하는 것이라면,flatMap동작 방식입력 데이터를 새로운 스트림(Publisher/Observable)로 변환한 뒤, 이 스트림을 병합하여 단일 스트림으로 반환합니다.입력당 여러 개의 출력이 가능하며, 모든 스트림이 병렬로 실행됩니다.사용하는 상황입력값으로 새로운 스트림을 생성해야 할 때.병렬적으로 여러 작업을 처리하며, 결과를 단일 스트림으로 병합하고 싶을 때. import RxSwiftlet disposeBag = DisposeBag()let..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/UPk1K/btsJWxf8Aa5/pIkFIrtD7ieJjwqoPLrLC1/img.png)
Project는 하나 이상의 Product를 build하기 위해 필요한 모든 파일과 리소스 및 정보를 담고있는 저장소이다. Xcode에서 프로젝트 파일을 만들면프로젝트이름.xcodeproj 파일이 만들어진다. 이를 우클릭하여 '패키지내용보기'를 클릭하면 그 안의 파일들을 볼 수 있다. 프로젝트이름.xcodeproj 디렉토리 안에는 아래의 것들이 존재한다. 1. project.pbxproj 파일2. project.xcworkspace 파일3. xcuserdata 디렉토리4. xcshareddata 디렉토리하나씩 살펴보자! 1. project.pbxproj 파일- 프로젝트에 관한 모든 정보를 저장- 두 브랜치에서 각각 작업할 때에 파일 생성, 이동, 삭제 등을 했을 때 이 파일에 수정이 생겨 git co..
* 'Combine: Asynchronous Programming With Swift' 책을 읽고 작성하는 글입니다. 이 책의 목적: Combine framework를 소개하고, Swift로 선언형 리액티브 앱 작성하기 Combine은 앱의 이벤트 처리에 대한 선언형 접근을 제공한다. 다양한 delegate callback과 completion handler closure 사용보다 하나의 chain을 만들 수 있다. 각 체인의 파트는 이전 스텝으로부터 받은 값들의 고유한 액션을 수행하는 Combine operator이다.Combine이 무슨 프레임워크인지?Combine은 Swift에서 비동기 이벤트 처리와 반응형 프로그래밍을 위해 제공되는 프레임워크 Combine 프레임워크는 Swift에서 제공하는 특..