전체 글 (104) 썸네일형 리스트형 Combine 변환연산자 Combine에서 우리는 퍼블리셔로부터 오는 값에 대한 연산을 수행하는 메소드를 " `operator` "라고 부릅니다. 각 결합 연산자는 게시자를 반환합니다. 일반적으로 게시자는 업스트림 이벤트를 수신하여 조작한 다음 조작된 이벤트 다운스트림을 소비자에게 보냅니다. collect() collect연산자의 publisher는 개별 값 스트림을 단일 배열로 변환하는 편리한 방법을 제공한다. 마블 다이어그램은 작업자가 작동하는 방식을 시각화하는 데 도움이 된다. 맨 윗줄은 업스트림 게시자, 상자는 연산자를 나타낸다. 그리고 마지막은 구독, 구체적으로는 업스트림 게시자로부터 오는 값을 조작한 후 구독자가 받게된다. example(of: "collect") { ["A", "B", "C", "D", "E"].pu.. [SwiftUI] View와 ViewModel (ObservableObject, @Published, @ObservedObject) @State에 이은 두번째. ObservableObject와 @ObservedObject는 SwiftUI에서 ViewModel구조를 사용할때 유용하다. ObservableObject를 채택하면 클래스의 내부속성의 변경사항을 구독자에게 전달할수 있는 객체가 된다. 오로지 클래스에만 사용이 가능하다. class SomeViewModel: ObservableObject { @Published var myName: String = "" } 그리고 뷰 모델에서 변경 가능한 속성을 선언하기 위해 @Published 속성 래퍼를 사용해야 한다. @Published는 ObservableObject 프로토콜을 준수하는 클래스에 속성을 감시할수 있도록 하는 프로퍼티 래퍼다. SwiftUI를 사용한 MVVM구조에서 View.. [SwiftUI] @State @State는 가변 데이터를 나타내는 속성 래퍼이다. @State를 변수 앞에 배치하면 SwiftUI는 해당 속성을 추적하고 , 상태가 변경될 때 마다 새로운 작업(뷰를 다시 그리는)을 할 수 있다. 이를 통해 뷰는 사용자 상호작용으로 데이터 모델의 변경에 즉각적인 UI업데이트 흐름을 만들 수 있다. @State var userTouchCount: Int @State 속성 래퍼가 사용되는 뷰에서 값을 변경하려면, 해당 뷰 내부에서만 변경해야 한다. 예를 들어 버튼이나 텍스트 필드를 통해 값을 변경하는 그런것이다. 일반적으로 아래와 같이 사용한다. struct ContentView: View { @State var myName: String = "" var body: some View { VStack() .. Combine01 개요 Combine 프레임워크는 지정된 이벤트 소스에 대해 단일 처리 체인을 만들 수 있다. 체인의 각 부분은 이전 단계에서 받은 요소에 대해 고유한 작업을 수행하는 결합 연산자이다. 비동기 프로그래밍 begin var name = "Tom" print(name) name += " Harding" print(name) end -> 단일 스레드에서 실행되므로 결과가 항상 같음 --- Thread 1 --- begin var name = "Tom" print(name) --- Thread 2 --- name = "Billy Bob" --- Thread 1 --- name += " Harding" print(name) end -> 어떤 스레드가 먼저 실행될지 모르며 결과가 매번 달라질 수 있다. 애플의 비동기 프로.. Build/Archive 시 Codesign [키체인 접근/Framework] 엊그제 앱스토어 업로드를 위해 아카이빙을 하는데 framework에 대한 서명이 필요하다며 팝업이 발생했다. 보통 여기에 항상 허용이 있는데, 왜 안보이는지 잘 모르겠다. 어쨌거나, 항상허용 버튼이 없어서 급한대로 사용자 이름과 암호를 프레임워크의 수만큼(무려 수십개!!) 넣어주는 개고생을 했는데, 어찌저찌 검색을 통해 문제를 해결하긴 했다. https://developer.apple.com/forums/thread/92336 [RxSwift] Observable 객체에 이벤트/값 등을 추가 - 방출(emit) 가능 Observable을 구독(subscribe)하는 대상에게 이벤트를 방출한다. Observable은 Sequence와 같다. Observable Event의 3종류 Next: 구독자에게 이벤트를 전달 Completion: 구독자에게 완료를 알리고 Stream이 종료된다. Error: 구독자에게 에러를 알리고 Stream이 종료된다. Observable의 생성 Observable.create ( { observer -> Disposable in observer.onNext("1") observer.complete() observer.onNext("2") return Disposable.create() }).disposed(by: disposebag) /.. 이전 1 2 3 4 5 6 7 ··· 18 다음