💡 Today I Learned28 [스터디11일차][RxSwift] Traits Traits란?특정한 상황에서 사용하기 쉽게 미리 정의된 Observable의 특별한 형태Single, Completable, Maybe 세 가지 종류가 있다 Single: 한 번만 값을 방출한다오직 하나의 값(.success(value)) 또는 에러(.failure(error))를 방출하는 Observable자동으로 완료되며 값을 받고나면 더이상 방출되지 않는다 예제 1 - just 정해진 값을 그대로 반환할 때 사용import RxSwiftlet single = Single.just("Hello, Single!")single.subscribe(onSuccess: { value in print(value)}) 예제 2 - create 비동기 작업과 같은 상황에서 사용된다(ex. API 요청.. 2025. 2. 7. [스터디11일차][RxSwift] 테이블뷰 RxSwift 사용 시 UITableViewDataSource와 UITableViewDelegate를 직접 구현할 필요가 없다기존에 사용하던 방식에서는 이 두 가지를 Extention으로 분리해서 관리를 했었는데, Rx 바인딩을 통해 모두 처리할 수 있어서 코드가 간결해진다! ✅ RxSwift 사용 시 변경되는 것(요약)UITableViewDataSource 구현 → 없어짐 (bind(to:)로 대체)UITableViewDelegate 구현 → 없어짐 (rx.modelSelected(_:) 등으로 대체)tableView.reloadData() 호출 → 자동 업데이트DispatchQueue.main.async 필요 → Observable이 알아서 UI 스레드에서 실행indexPath.row를 직접 다루는.. 2025. 1. 31. [스터디11일차][RxSwift] 검색 어플 만들 때 유용한 연산자 1. CatchError옵저버블에서 오류가 발생했을 때 처리하며 대체 값을 반환하거나 새로운 옵저버블로 대체한다예를 들어, 네트워크 요청 실패할 경우 기본 데이터를 제공하거나 사용자에게 오류 메시지를 표시한다 오류를 처리한 이후에도 스트림이 계속 동작함대체 옵저버블이나 값을 방출할 수 있음 예제 1 - 기본 값을 제공하는 CatchError let apiRequest = Observable.create { observer in observer.onError(NSError(domain: "APIError", code: -1, userInfo: nil)) return Disposables.create()}apiRequest .catchError { error in print(.. 2025. 1. 20. [스터디10일차] Disposable RxSwift를 사용하다 보면 나오는 disposeddisposable은 "사용 후 버리게 되어있는" 이라는 의미를 가지고 있다 이전에 살펴본 Obsevable의 개념을 살펴보면 옵저버블이 관찰 가능한 상태일 때 옵저버가 옵저버블을 구독하는 형태인데,더 이상 옵저버블에 관한 이벤트를 받고싶지 않을 때 구독 해제가 필요함이 때 사용하는 것이 Disposable 이다Disposable = 리소스를 해제하고 이벤트 구독을 중지한다 그럼 어떻게 사용할까? Disposable의 사용 방법1. Disposable 기본기본적으로 옵저버블을 사용하면 Disposable 객체가 반환되는데, 해당 객체를 사용하여 구독을 해제한다let observable = Observable.of(1, 2, 3)let subscri.. 2025. 1. 8. [오류] 레이아웃 설정 후 빌드 무한루프에 빠져버렸다 ♾️ 평소와 똑같이 UI 만들고 SnapKit 사용해서 레이아웃을 설정하던 도중딱 코드 한 줄 바꿨는데, 빌드가 안되고 무한루프에 빠져버렸다(빌드 후 오류가 뜨는 것이 아닌... 무한으로 빌드가 진행됨) 처음에는 컴퓨터 문제인줄 알고 올게왔다 했는데 바꾼 코드 한 줄 주석처리 하니까 정상 빌드가 됐다여기서 의심된 원인 SnapKit을 사용하여 레이아웃 설정 시 UIScreen.main.bounds와 safeAreaLayoutGuide를 동시에 사용하면 안되는가? 를 토대로 찾아보았다 먼저, UIScreen.main.bounds는 디바이스 화면의 절대적인 크기를 반환한다.하지만 safeAreaLayoutGuide는 상위뷰와 관련된 상대적인 레이아웃을 기준으로 제공한다 서로 기준이 다르므로 SnapKit이.. 2025. 1. 2. [오류] SnapKit 사용 시 No Such file or directory 프로젝트 생성 후 스냅킷만 깔아줬는데 오류 발생 프레임워크에서 SnapKit-Dynamic 삭제함 사라져라 잘됨 아오 2024. 12. 5. 이전 1 2 3 4 5 다음