일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- collectionview
- uiscrollview
- 리팩토링
- 클린 코드
- 애니메이션
- ribs
- tableView
- SWIFT
- 리펙토링
- MVVM
- UITextView
- rxswift
- ios
- RxCocoa
- map
- uitableview
- Xcode
- swiftUI
- Human interface guide
- swift documentation
- Refactoring
- UICollectionView
- 리펙터링
- Observable
- combine
- 스위프트
- Clean Code
- clean architecture
- HIG
- Protocol
- Today
- Total
목록DispatchWorkItem (3)
김종권의 iOS 앱 개발 알아가기
1. 타임아웃 처리 방법 - DispatchWorkItem 사용 Int { sleep(10) return 3 } 타임아웃 추가 아이디어 현재 메인스레드이므로, 스레드 락이 걸리는 지점에서 메인스레드도 락이 걸릴 위험이 있기 때문에 별도의 큐를 만들어 someDelayWork()를 호출하게끔 수행 DispatchWorkItem을 사용하면 타임아웃 거는게 매우 쉽기 때문에 DispatchWorkItem 인스턴스를 생성하여 위에서 만든 큐와 같이 사용 사전지식) Queue의 종류 main queue (serial queue): DispatchQueue.main DispatchQueue.main global queue (concurernt, qos 설정 가능) // 애니메이션과 같은 UI 즉시 업데이트가 필요하..
사용한 framework pod 'RxSwift' pod 'RxCocoa' 시작, 취소 기능을 Observable로 구현 DispatchWorkItem과 Operation을 사용하여 task들을 관리할 수 있지만 Observable를 사용하면 더욱 단순화 * Operation 포스팅 글 참고 * DispatchWorkItem 포스팅 글 참고 Observable을 사용하면 다양한 Rx 연산자 사용이 가능하여 다른 기능을 붙이기에 용이 시작, 취소 기능 구현 아이디어 시작 기능 시작 버튼을 탭하면 task를 시작하고, 만약 기존에 task가 실행중이면 내부적으로 취소한 후 실행 Observable로 task를 관리하면, disposeBag = DisposeBag()과 같이 초기화하여 기존 작업을 손쉽게 취소..
DispatchQueue 개념 Thread pool을 thread safe하게 관리하는 객체 멀티 스레드에서도 어떤 함수나 변수, 혹은 객체가 여러 스레드로부터 동시에 접근이 이루어져도 프로그램의 실행에 문제가 발생하지 않는 것 Thread를 다루는 GCD(Grand Central Dispatch) 중 하나 DispatchQueue의 종류 3가지 1) main (serial) main thread에서 처리되는 serial queue (모든 UI관련 작업은 해당 큐에서 main queue에서 실행) 2) global (concurrent) 전체 시스템에서 공유되는 concurrent queue이고, concurrent이기 queue끼리의 우선순위를 위해서 queue를 사용할 때 QoS 설정 필요 userI..