안녕하세요 :) Zedd입니다. 제가 SwiftUI, iOS 15+ ) onAppear()대신 task() 글을 쓰다가 문득 든 생각들을 정리해보려고 합니다 # 예제 let url = "https://zeddios.tistory.com" let (data, _) = try ✅ await ✅ URLSession.shared.data(from: URL(string: url)!) let str = String(data: data, encoding: .utf8)!.suffix(50) DispatchQueue.main.async { self.htmls.append(String(str)) } SwiftUI, iOS 15+ ) onAppear()대신 task() 글에서 사용한 예제 중 ViewModel 일부 코드인데..
안녕하세요 :) Zedd입니다. 오늘은 Combine Operator의 9번째 시간..Handling Errors 섹션입니다. assertNoFailure(_:file:line:) catch(_:) tryCatch(_:) retry(_:) 오늘 볼건 이렇게 4개에요. assertNoFailure(_:file:line:) 1. 업스트림 Publisher가 실패하면 fatal error를 발생시키고 2. 그렇지 않으면 수신된 모든 입력을 republish하는 친구입니다. 예제를 봅시다. subject.send(completion: Subscribers.Completion.failure(SubjectError.genericSubjectError)) 제가 Publisher에 error를 명시적으로 보냈습니다. ..
안녕하세요 :) Zedd입니다. 오늘은..8번째 시리즈.. Combining Elements from Multiple Publishers 입니다. combineLatest merge(with:) zip 봐야할 것은 이 3개입니다. 이 전 시리즈들을 보시려면 여기를 참고해주세요! combineLatest combineLatest는 additional publisher를 구독하고, 두 게시자로부터 ouput을 수신하면 클로저를 호출하는 친구입니다. 일단은 이런식으로 사용할 수 있습니다. 왜 저런 결과가 나왔는지 하나씩 보도록 합시다. 일단 보기전에, "두 게시자로부터 ouput을 수신하면" 클로저를 호출하는 친구라는 사실을 기억해야합니다. 먼저 combineLatest를 사용한 코드부터 보겠습니다. let ..
안녕하세요 :) Zedd입니다. 오늘은..벌써 7번째..!! 오늘도 쉬워서 얼른 공부해볼거에요. 이전 시리즈들은 여기서 확인해주세요 그럼 시작할게요! first() / last() first(where:) / last(where:) tryFirst(where:) / tryLast(where:) output(at:) output(in:) output을 제외한 친구들은 첫번째냐 마지막이냐만 달라서...같이 볼게요. first() / last() 이 친구는 스트림의 첫번째/마지막 요소를 publish한 다음 끝나는 operator입니다. 만약 first/last가 요소를 받기전에 업스트림이 완료되면 값을 publish하지 않고 완료됩니다. 응 갸쉬워 first(where:) / last(where:) wher..
안녕하세요 :) Zedd입니다. 원래 이게 5탄이었어야 하는데;;;; 지금 발견함. 걍 합시다? contains(_:) contains(where:) tryContains(where:) allSatisfy(_:) tryAllSatisfy(_:) 이렇게 5가지만 있어요. contains(_:) Swift Standard Library에 있는 것과 똑같습니다. upstream publisher가 contains의 파라미터인 output과 동일한 값을 생성하면 true를 리턴합니다. 참고로 첫번째로 일치하는 걸 찾으면 true를 리턴하고 정상적으로 완료됩니다. 하지만 일치하는 요소를 생성하지 않고 upstream이 완료되면 false를 방출하고 종료합니다. 참고로 파라미터로 들어가는 타입은 Equatable을..
안녕하세요 :) Zedd입니다. 요새 시간이 없어서 개인공부를...소홀히..하고 있습니다. 피아노 연습도 거의 못하고 있고............ㅠㅠㅠㅠㅠㅠㅠㅠ 담주부터 진짜 다시 홧팅합시다. 다섯번째 Combine Operator정리입니다. drop(untilOutputFrom:) dropFirst(_ :) drop(while: ) tryDrop(while: ) append(_ :) prepend(_ :) prefix(_ :) prefix(while:) tryPrefix(while:) prefix(untilOutputFrom:) 시작할게요! drop(untilOutputFrom:) drop은 두번째 Publisher로 부터 요소를 받을 때 까지 업스트림 publisher(첫번째 publisher)의 요소..
안녕하세요 :) Zedd입니다. 오늘은 Combine 4번째 시간~ Applying Mathematical Operations on Elements 섹션입니다. 뭔가 수학적인 오퍼레이션을 적용하는...Operator같네요. count max max(by:) tryMax(by:) min() min(by:) tryMin(by:) 진짜 오늘은 개쉽다...솔직히 이거랑 이거 다음 섹션, 다음다음 섹션은 너무너무 쉬워서..;; 한 글에 다 쓰고 싶은데........ㅋ 그럼 또 오퍼레이터가 너무 많아져서 그냥 끊겠습니다. 암튼 오늘건 이름만봐도 뭔지 알겠죠...try어쩌고 빼고 다 Swift Standard Library에 있는거랑 똑같아요~ count 더 이상의 자세한 설명은 생략한다. max 더 이상의 자세한 ..
안녕하세요 :) Zedd입니다. Operator (1) - Mapping Elements Operator (2) - Filtering Elements 3번째 Reducing Elements 섹션입니다. collect() collect(_:) collect(_:options:) ignoreOutput() reduce(_:_:) tryReduce(_:_:) 오늘은 6개 밖에 안돼요!!!! 그 중 3개는 collect임 collect() 이 친구는 받은 모든 element를 수집(collect)하고, upstream publisher가 완료되면 collection의 single array를 내보내는 친구입니다. 그쵸. 10까지 땡 하고 나면 0부터 10까지의 배열을 만들어줍니다. 위 예제에서는 그냥 0부터 1..
- 스위프트
- IOS
- np-hard
- 회고
- np-complete
- swift3
- 피아노
- swift sort
- Git
- SwiftUI
- Accessibility
- Combine
- 제이슨 파싱
- FLUTTER
- ios 13
- WidgetKit
- swift tutorial
- UIBezierPath
- WKWebView
- 스위프트 문법
- WWDC
- Xcode
- actor
- swift array
- fastlane
- swift 공부
- github
- swift delegate
- Swift
- iOS delegate
- Total
- Today
- Yesterday