안녕하세요. 밀쿄입니다. 오늘은 콤바인에서 시퀀스에 대해서 알아보겠습니다. 시퀀스는 인자로 sequence라는 이름으로 시퀀스를 받습니다. 말에서 느껴지듯이 sequence인자는 지난 시간에 알아봤던 그 Sequence프로토콜을 채택하고 있어야합니다. 그럼 어떻게 작동하는 지 한 번 살펴보도록 하겠습니다. 참고로 이 놈은 Convenience Publishers가 아니므로 사용할 때는 앞에 Publishers라고 붙여줘야합니다 그럼 이제 코드를 살펴보도록 하겠습니다 Publishers.Sequence(sequence: [1,2,3]) .sink(receiveCompletion: { completion in switch completion { case .failure: print("FAIL") case ...
오늘은 스위프트의 프토토콜 중 하나인 Sequence에 대해서 알아보겠습니다. Sequence는 꽤 중요한 프로토콜이라고 생각합니다. Array 타입을 사용할 때 대부분의 기능을 이 프로토콜이 제공할 뿐만 아니라 map, filter같은 것도 이 프로토콜에 정의 되어 있습니다. 애플문서는에는 다음과 같이 언급되어 있습니다 "요소에 순차적으로 반복 접근 할 수 있는 타입" 조금 더 살펴보자면 시퀀스는 한 번에 하나씩 단계별로 수행할 수 있는 값 리스트이고 시퀀스 요소로를 반복하는 가장 일반적인 방법은 for-in 이라고 합니다. 그리고 그렇게 for-in을 사용하면 시퀀스에 특정 값이 포함되어 있는지 확인할 수도 있죠. 또한 시퀀스의 끝에 도달할 때까지 각 요소를 테스트할 수 있죠 그리고 사용자가 커스텀 ..
잠시 언급한 적 있는 Just에 대해서 알아보겠습니다. Just는 한 번만 실행되고 종료되어집니다. 끝입니다.하면 너무 재미없을테니 몇 가지를 조금 더 살펴보겠습니다 Just를 실행시키고 Jump to Definition을 실행시켜 보면 다음과 같은 소스를 얻을 수 있습니다. 일단 눈에 띄는 것은 제가 맨 처음 Just를 소개했을 때처럼 제너릭 구조체라는 것이 눈에 보입니다. 그 외에 눈에 보이는 것은 public func receive(subscriber: S) where Output == S.Input, S : Subscriber, S.Failure == Just.Failure 이 부분이 눈에 띕니다. 인자로 받는 값은 Subscriber을 채택하고 있어야하고 Just가 방출하는 값이랑 subscri..
정말 연속 포스팅은 처음이네요.. 오늘은 사담없이 바로 시작해보겠습니다 Scheduler 우리가 코딩을 하다보면은 쓰레드를 다뤄야할 일이 많습니다. 네트워크 작업이나, 연산이 많이 필요로 하는 작업은 백그라운드에서 돌려야하지만 화면과 관련된 UI 부분은 메인에서 사용해야합니다. 스케쥴러를 사용하면 일너 쓰레드를 제어할 수 있습니다. 쉽게 말하면 Scheduler는 쓰레드를 가르키는 말이겠네요 Before Combine 지난 시간에 만든 ImageDownloader 예제에서 쉽게 찾아볼 수 있습니다. DispatchQueue.global().async { //Code } DispatchQueue.main.async { //Code }바로 DispatchQueue.main 이나 DispatchQueue.gl..
안녕하세요 밀쿄입니다. 오늘은 어제 예고한대로 Cancellable에 대해서 알아보는 시간을 가져보도록 하겠습니다. 먼저 어제 예시를 다시 보자면 sink의 리턴값이 AnyCancellable입니다 AnyCancellable은 Cancellable란 프로토콜의 Type Erasure한 놈입니다. 그럼 Cancellable을 알면 되겠죠? https://developer.apple.com/documentation/combine/cancellable Cancellable - Combine | Apple Developer Documentation A publisher that provides an explicit means of connecting and canceling publication. develop..
와 백만년만에 포스팅이네요. 정말로 정신없이 지내고 있습니다.. 개인앱 리팩한다고 정신이 없습니다.. 내가 짜는게 코드인지 스파게티인지...(아마 스파게티에 더 가까울껍니다..) 오늘은 Combine을 들고왔습니다.. iOS13부터 사용가능하지만 앞으로 개인적으로 많이 사용될 것 같습니다 특히 Notification 이나 KVO의 사용빈도가 확 줄어드네요.. 특히 콜백 지옥에서 벗어날 수 있다고 생각합니다.. 비동기 이벤트 처리하기도 쉽구요 조금 극단적인 비유를 하자면.. 저렇게 코드가 계속 가면... 코드의 가독성이 좋을까요? 에러처리는 또 어떨까요.. 글쎼요 저는 좀 별로라고 봅니다 만약에 세번째 오퍼레이션에서 d가 0이면 에러가 나니까 유저에게 에러 메세지를 던지고 싶다면? 이렇게 되면 전 개인적으..
안녕하세요 밀쿄입니다. 오늘은 알고리즘 문제를 들고왔습니다. 쉬운 문제이니 들고왔으니 다같이 풀어봅시다 https://programmers.co.kr/learn/courses/30/lessons/42840?language=swift 코딩테스트 연습 - 모의고사 | 프로그래머스 수포자는 수학을 포기한 사람의 준말입니다. 수포자 삼인방은 모의고사에 수학 문제를 전부 찍으려 합니다. 수포자는 1번 문제부터 마지막 문제까지 다음과 같이 찍습니다. 1번 수포자가 찍는 방식: 1, 2, 3, 4, 5, 1, 2, 3, 4, 5, ... 2번 수포자가 찍는 방식: 2, 1, 2, 3, 2, 4, 2, 5, 2, 1, 2, 3, 2, 4, 2, 5, ... 3번 수포자가 찍는 방식: 3, 3, 1, 1, 2, 2, 4..
안녕하세요. 밀쿄입니다. 늘 다른 주제로 찾아오는 것 같네요.. ARC 2번이랑 코어데이터 2번도 적어야하는데 귀차니즘이..쿨럭쿨럭 여튼 오늘은 SwiftUI 화면 회전 감지하는 방법에 대해서 알아볼껍니다 보통은 그냥 ViewController에서 override해서 사용했는데.. SwiftUI(이하 스유)에서는 구조체인다가 뷰컨트롤러라는 개념이 없어서 어찌해야할까 고민을 많이 했습니다. 그러다가 답을 찾아서 공유하는 겸 남겨둘려고 포스팅을 시작합니다. 급하신분은 이 링크 들어가셔서 코드만 훑고 지나가십시오 https://stackoverflow.com/questions/57441654/swiftui-repaint-view-components-on-device-rotation SwiftUI Repaint..
- Total
- Today
- Yesterday
- 스유
- replaceNil
- 삨
- CombineLatest
- BBIK
- SEQUENCE
- iOSCombine
- 현업이그리운
- 유니온파인드
- MVC
- Queue
- Just
- programmers
- 스위프트
- UIViewControllerRepresentable
- compactMap
- swift
- 스위프트유아이
- ErrorHandling
- 알고리즘
- 자료구조
- SwiftUI
- ios
- 텔큐온
- combine
- 결합연산자
- AutoLayout
- 스택뷰
- 콤바인
- Apple
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |
