iOS84 [RxSwift] map vs flatMap 걍 가끔 헷갈려서 정리한다 map Rx 공식문서에서 말하는 map은 다음과 같다. 각 항목에 함수를 적용하여 Observable에서 내보내는 항목을 변환합니다. 얘는 간단하다. public func map(_ transform: @escaping (Self.E) throws -> R) -> RxSwift.Observable Observable이 가진 요소들에 연산을 적용하고, 적용된 요소를 반환하는 것이다. 연산은 타입 변환도 해당되고, 단순한 값 연산도 해당이 되겠지 Observable .map { "\($0.name)" } .bind(to: nameLabel.rx.text) .disposed(by: disposeBag) 이런식으로 사용한다. flatMap Observable에 의해 방출된 항목을 Ob.. 2022. 8. 9. [iOS] View Drawing Cycle (Layout까지 작성함) 혼자 그냥 멍때리는데 View를 그리며 문제 생겼던 부분들이 어떤 것이 있었을까 하고 고민하다가 그냥 심심해서 구글링하며 커스텀 뷰 이쁘장하게 되있는건 어째 구현했을랑가싶어서 구경 좀 했다. 근데 생각해보니 이쁘장한 커스텀뷰를 만들 때 뷰가 어떻게 그려지는 지에 대해 대충은 알고 있는데, 좀 깊이 살펴보며 포스팅한 것은 없는 것 같아서 공부할 겸 씀 우선 뷰가 어떻게 그려지고.. 어떻게 업데이트되며.. 레이아웃을 어떻게 잡는지에 대해서 이해하려면 Main RunLoop에 대해서 이해해야 한다고 한다. ㅇㅇ 그런가보다 하고 공부하믄되것지 뭐~~ Main RunLoop 별개로 우선 알아야 할 것은 내가 밑에서 설명할 RunLoop는 Main Thread에서 돌고있는 놈이다. 얘는 자동으로 돌고 있지만, 다른.. 2022. 8. 7. [Xcode] 단축키 좀 써주세요... 내가 죽어라고 쓰는 것만 좀 모아봤다. 코드 관련 ⌘ + 방향키 - 줄의 맨 끝단으로 이동 ⌘ + ⇧ + 방향키 - 커서 위치로부터 줄 끝까지 선택 ⌥ + 방향키 - 단어(띄어쓰기 기준) 단위로 이동 ⌃ + i - Indent 정렬 ⌘ + / - 주석 ⌘ + "-" - Zoom out ⌘ + "+" - Zoom in ⌘ + ⌃ + 0 - Zoom Reset ⌘ + 클릭 - 액션 메뉴 ⌥ + 클릭 - Quick Help ⌘ + ⌃ + 클릭 - Definition으로 이동 ⌘ + ⌃ + E - 이름 한꺼번에 바꾸기 ⌃ + ⇧ + 클릭 - 여러 줄 선택하여 동시에 수정 Navigator ⌘ + 0 - Navigator 보이기 / 숨기기 ⌘ + 1 ~ 9 - Navigator 메뉴 순서대로 (Navigator .. 2022. 8. 6. [RxSwift] RxDataSources 사용해보기 아 쓴거 다 날아감 진짜 개빡친다!!!!!!!!!!!!!!!!!! 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 침착하자..... 다시..... DiffableDataS.. 2022. 8. 2. [RxSwift] concat 최근에 ReactorKit을 적용해보면서 많이 사용하였던 concat에 대해서 알아보려한다. 꽤나 간단하다. concat은 여러 Observable을 연결하는 오퍼레이터이다. 모든 Observable이 정상적으로 완료되고, 마지막에 연결된 tail부의 Observable이 완료되면 complete된다. 그냥 쉽게 생각하면 직렬로 Observable을 연결한다 라고 생각하면 된다. 예제는 다음과 같다. let disposeBag = DisposeBag() let eng = Observable.of("a", "b", "c") let kor = Observable.of("ㄱ", "ㄴ", "ㄷ") let 변수명정하기시로시로 = Observable .concat([eng, kor]) 변수명정하기시로시로 .subs.. 2022. 7. 26. [Swift] defer 음... 잠이 안와서.. 간단히 defer.. defer가 무엇이냐? 함수가 종료되기 전에 실행되야 할 코드를 작성하는 블럭을 의미한다. 예를 들면.. func config() { // config code.. // after complete config code.. defer { print("complete!") } } 이런 식이다. 이리 간단해보이는 defer는 중첩이 가능한데 이 때 defer 블럭 실행 순서가 중요하다. defer는 Stack 방식으로 동작하여(LIFO) 선언된 역순으로 호출된다. func test() { defer { print("test 1") } do { defer { print("test 2") } print("test 3") } for i in 0.. 2 그리고 다음 블럭.. 2022. 6. 10. 이전 1 2 3 4 5 ··· 14 다음