본문 바로가기

iOS25

클래스&구조체 메모리 관점에서의 차이 이번 포스팅에서는 클래스와 구조체의 가장 큰 차이 2가지 1. 메모리 저장 방식 2. 상속 가능 여부 중 메모리 저장 방식 차이에 대해 정리할 것이다! (아래 코드들은 playground에서 실행했기 때문에, main 함수 안이라고 가정한 뒤 공부한 것입니다. 즉, 전역 변수가 아닌 main 함수의 스택 영역이라고 생각하며 코드를 작성한 것입니다.) 클래스 예시 1. class Dog { var name = "강아지" var weight = 0 func sit() { print("\(self.name)가 앉았습니다.") } func layDown() { print("누웠습니다.") } } // 객체 생성 var bori = Dog() var choco = Dog() // 객체의 속성에 접근 choco.n.. 2021. 12. 17.
[RxSwift] Operator 연습 4탄 : Time Based Operator 이번 포스팅에서는 시간의 흐름에 따라 데이터를 제어, 변동, 조작하는 오퍼레이터인 Time Based Operator를 정리할 것이다. TimeBasedOperator는 buffer 연산자 계열이고 buffer 연산자 계열은 과거의 요소들을 subscriber에게 다시 재생하거나 잠시 버퍼를 두고 줄 수 있다. 1. replay 지나간 이벤트 방출에 대해 버퍼 사이즈 수만큼 새로운 subscriber에게 replay 해주는 연산자. let intro = PublishSubject() let parrot = intro.replay(1) // buffer size=1 parrot.connect() intro.onNext("1.hello") intro.onNext("2.hi") parrot .subscribe.. 2021. 12. 14.
[RxSwift] Operator 연습 3탄 : Combining Operator 이전의 Operator들에서는 Observable 시퀀스를 어떻게 필터링(Filtering Operator)하고 변형하는지(Transforming Operator)를 정리했다면 ! 이번에는 Combining Operator를 이용하여 Observable 시퀀스들을 모으고 시퀀스 내의 데이터들을 병합하는 방법에 대해 정리할 것이다 🤔 1. startWith Observable에서 작업할 때 초기값을 받는지 여부가 중요하다. 현재 위치, 네트워크 상태 등의 초기값이 필요한 경우에 쓰임! import RxSwift let disposeBag = DisposeBag() let yellowClass = Observable.of("student1","student2","student3") yellowClass .e.. 2021. 12. 13.
Rx Rx ??? 뭐가 좋은데 그게? Rx는 기본적으로 비동기적으로 움직이는 애플의 api들과 수시로 상태가 변하는 환경에서 보다 직관적이고 효율적인 코드를 작성할 수 있게 도와준다. RxSwift 문서에서 제공하는 예시를 통해 확인해 보자! 첫번째 예시. 위의 예시를 해석해보면 Observable 이라는 객체를 통해 이벤트의 흐름을 표현하게 되고, combineLatest, map과 같은 오퍼레이터를 통해 Observable이 내뱉는 이벤트 속의 값들을 여러 형태로 조합하고 변경한다. 또 bind(RxCocoa에서 제공하는 개념)를 통해 원래 디스패치 큐를 이용해 조정해주어야했던 설정들을 자동으로 처리하는 UI 코드를 작성하게 된다. 두번째 예시. 우리는 수많은 API를 통신을 기반으로한 앱을 만드는데 AP.. 2021. 11. 2.