일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- combine
- UICollectionView
- SWIFT
- tableView
- swiftUI
- 리펙토링
- 리펙터링
- Observable
- 리팩토링
- rxswift
- map
- 클린 코드
- ribs
- 스위프트
- swift documentation
- Human interface guide
- RxCocoa
- Xcode
- HIG
- uitableview
- uiscrollview
- Refactoring
- Clean Code
- Protocol
- collectionview
- MVVM
- UITextView
- clean architecture
- ios
- 애니메이션
- Today
- Total
목록Catch (4)
김종권의 iOS 앱 개발 알아가기
예외처리 throw를 하고 사용하는쪽에서 try - catch하는 예외처리를 모르는 개발자는 없지만 예외처리를 잘 활용하는 방법을 깨닫는것도 중요 swift에서 보통 메서드를 작성하다가 특정 상황에서는 guard문을 사용한다거나 if문을 사용하여 특정 부분에서만 동작하도록 하는 것이 대부분 예외처리의 중요성 확장성 증가 보통 메서드나 함수를 작성할 때 특정 기능이 필요해서 만드는데, 이렇게 되면 메서드 내부에서 예외적인 사항들을 guard문이나 if문으로 처리하는데 이렇게 처리하게 된다면 특정 상황에서만 사용할 수 있는 코드로 존재 ex) 인수로 들어오는 view의 subview들을 대상으로 UIStackView의 색상을 추출해내는 함수 func getStackViewColor(parentView: UI..
do(onError:)는 모든 스트림 에러 모두 처리 상위 flatMap에서 에러 발생 시 1onError, 2onError 둘 다 동작 1onError만 출력되지 않고 2onError도 출력된다는것을 주의 중간에 flatMap으로 Observable로 변경하는데도, 상위 Observable에서 발생한 error가 그대로 내려오므로 주의 struct MyError: Error {} Observable .just(()) .flatMap { _ -> Observable in throw MyError() } .debug("1디버그") .do( onNext: {print("1next")}, onError: {_ in print("1onError")}, onCompleted: {print("1onCompleted..
1. RxSwift의 Map, FlatMap - 사용하여 비동기를 순서대로 처리 방법 2. RxSwift의 Map, FlatMap - 사이드 이펙트 처리 방법 (throw와 catch 사용) map과 flatMap 연산자 개념을 구분 개념 구분 flatMap은 블록 내에서 Observable을 리턴해야하므로, API를 사용할때 응답값이 Observable일때 flatMap사용 map의 리턴값은 Observable이 아니고, 사이드이펙트 처리 시 throw를 리턴하여 처리 주의사항: 스트림안에서 throw가 하나라도 방출되면, 해당 stream은 dispose되므로 사용자가 계속 재시도 할 수 있는 이벤트 처리에는 부적합한것을 주의 (예제 상황도 사용자가 계속 시도할 수 있으므로 부적합하지만 설명을 위해서..
1. 예외 처리 필요한 이유 - optional타입은 오류가 발생했을 때 오류에 대한 정보를 외부로 전달할 방법이 없음 2. 구현 방법 - 함수가 반환할 오류는 일관된 주제와 연관된 경우(문자열이 있을 때, 문자열 크기, 문자열 형식, 문자열 포멧형식 등의 체크) - 일관된 주제를 표현하기에 가장 좋은 것은 enum형 타입 1) enum에 오류타입명 정의 // enum형으로 error타입명 정의 ( 프로토콜을 구현한 것은 오류 타입으로 사용하라는 일종의 가독성 표시 ) enum DateParseError : Error { case overSizeString case incorrectData(part: String) } 2) 오류가 나는 조건을 명시 : throws와 throw로 선언 - 오류가 발생할 수..