일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- test
- uikit
- xcodecloud
- github
- IOS
- swiftdata
- ios18
- iOS 13.0+
- Git
- Tuist
- tuist #xcodecloud #ios #ci/cd #swiftlint #firebase
- combine
- ObjC
- UI
- regex
- iOS 개발자
- TCA
- xcode
- concurrency
- 모바일
- 정규표현식
- 개발
- Navigation
- network
- navigationsplitview
- SWIFTUI
- Firebase
- Alamofire
- composablearchitecture
- SWIFT
- Today
- Total
목록concurrency (3)
iOS 개발 기록
📄목차상황 해당 메서드 코드XCTestExpectationTask fulfillment사용Reference 상황 AsyncSequence를 사용한 Concurrency 메서드를 테스트하는데 테스트가 종료되지 않는 상황이 발생했다. 로그도 뜨지 않고 왜 이런 상황이 발생하는 건지 파악도 잘 안됐다. 아마 테스트를 실행하는 스레드와 비동기 작업을 수행하는 스레드가 작업을 끝냈다는 것을 서로 전달하지 않아 데드락이 걸린게 아닐까 싶었다. 찾아보니 XCTestExpectation를 사용해서 비동기 메서드를 테스트할 때에 사용하는 코드가 있길래 이걸 조금 수정해서 사용하니 다행히 잘 돌아갔다. 해당 메서드 코드import XCTest extension XCTestCase { /// Test Concurrency ..
📄목차AsyncStream코드 AsyncThrowingStream 코드AsyncStream vs CombineReference SwiftConcurrency를 공부하다가 AsyncStream를 사용할만한 일이 생겨 적용하며 정리해보았다. 다음과 같이 인증 화면에서 시간을 카운트다운 하는 기능을 AsyncStream를 사용해 적용해보려고 한다. AsyncStream비동기 Iterator를 제공하는 프로토콜인 AsyncSequence를 쉽게 구현할 수 있도록 제공되는 인터페이스 AsyncSequence를 준수하기 때문에 map, filter, contains 등 익숙한 고차함수 메소드를 사용할 수 있다. 코드 @MainActor func timerStream() -> AsyncStream { return A..
📄목차Continuationresume CheckedContinuationUnsafeContinuation코드 결론Reference ContinuationPush를 등록을 설정하던 도중에 여러 콜백 함수로 인한 장풍이 생기고 뭔가 가독성이 거슬려서 전에 공부했던 async/await로 장풍 좀 없애고 싶다는 생각이 들었다. 요즘엔 많은 메소드들이 async/await로 구현되어서 편하게 구현하고 있어서 편하게 변환하고 있던 중 막히는 순간이 왔다. /// 막혔던 예시 var pushTokenHandler: ((String?) -> Void)? = nil func pushTokenRegister(handler: @escaping (_ fcmToken: String?) -> Void) { self.pushT..