-
[Combine] tryMap 말고 compactMap 으로 조져보자Swift 2023. 1. 13. 21:24
오늘 클론코딩을 하면서 아래와 같은 에러와 마주했다 👇👇
그리고 강제 언랩을 해주어도 사라지지 않네? 엥?
왤까.. 컴파일러가 이렇게 부정확한적이 없는데 뭐지 뭐지...
주변에 물어보니 간혹 생기는 컴바인 버그라고 하길래 일단 ㅇㅋ 하고 tryMap 을 열어보기 시작했습니다.
대충 읽어보면 Publisher 를 어레이로 받아서 하나씩 돌리는데 거기서 throw 가 발생하면 -> Subscribers.Completion.failure 로 리턴한다. 그러니까 만약 iterate 할때 throw 할일 없으면 map 쓰세요~ 라고 하네요.그래서 map 으로 돌리면 또 에러가 납니다 참고로 UIImage in 이로 바꿔도 동일한 에러발생
그래서 나의 해결책은? compactMap 으로 조져~
그러면 nil 이 사라질태니까 에러도 없겠지? 아주 잘돌아갑니다앞으로 Combine 쓸땐 특별한 예외 상황아니면 compactMap 만 쓰도록 하겠습니다!
'Swift' 카테고리의 다른 글
[Combine] 시간차를 두고 값을 내보내주자 - debounce (0) 2023.01.14 [Combine] Publishers 를 합쳐서 한번에 처리해주자 - combineLatest (4) 2023.01.13 [Swift] GCD DispatchQueue 에 대해서 (0) 2023.01.09 [Swift] 안전하게 Array Index 하기 - subscript 직접 구현하기 (0) 2023.01.08 [Swift] Higher Order Functions (0) 2023.01.07