내용 - Publisher -> Operator -> Subscriber - Subscription [ Subscriber(구독자)가 Publisher(크리에이터)에 연결됨을 나타낸다.] - @Published Combine - 놈놈놈 - Publisher [발행하는 놈 (크리에이터)] - Subscriber [구독하는 놈] - Operator [변경하는 놈] 이벤트 발생 이벤트 가공 이벤트 소비 Publisher -> Operator -> Subscriber data를 그냥 보낼 수 있고 data를 알고 있는 상태로 보낼 수도 있고 data를 변형해서 보낼 수도 있다. Publisher 크리에이터 즉, 데이터를 배출하는 놈 구체적인 output 및 실패 타입을 정의 Subscriber(구독자) 이 요청..
데이터 전달. MVVM(1)과 MVVM(2)에서 공부한 건 Start 버튼(1번 손가락)을 눌렀을 때, 빈 View에 데이터를 받아와 뿌려주는 과정이다. 그럼 Next버튼(2번 손가락)을 눌렀을 때 다음화면으로 받은 데이터를 넘겨줘야 한다. 정리하자면 1. start 버튼을 누른다(1번 손가락) 2. ViewModel에서 버튼이 눌린 걸 감지한 후 네트워크와 통신을 한 다음 성공하면, 데이터를 모델에 담은 후(변경이 된 후) didSet이 감지한다. 3. View에 있는 ViewModel의 인스턴스에서 didSet에 선언해 놓은 클로저를 호출하고 변경된 데이터를 가공해 놓은 View관련 변수를 호출하면 View가 변경된다. 4. Next 버튼을 누른다(2번 손가락) 5. 첫 번째 View에 ViewMod..
내용: View -> ViewModel, didSet + closure ⭐️ViewModel - View를 위한 (데이터 모델): 모델(데이터)을 과 로직을 가져야한다. fetchMusic {...}의 결과가 success 가됐을때 self.music에 데이터가 담긴 다고 했다. 즉, var music: Music? 에 데이터가 담긴다는 소리고 이 담긴 시점(데이터가 변한 것)을 늘려야 한다. 어디에? View -> ViewModel 1) View(Controller + View)에서 start버튼이 눌림 @IBAction func startButtonTapped(_ sender: UIButton) { viewModel.handleButtonTapped() } 2) Start Button이 눌렸다는 걸 ..
MVC -> MVVM 변경하는 과정에서 클로저와 ARC관계에 대해 공부하고자 정리. - 내용: MVC, MVVM, closure, ARC, unowned, waek Model = Model // 정확하게 말하면 DataClass를 말한다. View = Controller + View // MVC에서 VC를 같이 사용. ViewModel // View를 위한(데이터)모델, 로직을 가짐. ⭐️ViewModel 사용자의 인풋(View에서 이벤트가 발생하면)을 받으면 Model의 데이터를 가지고 View에 전달해 주어 View(화면)이 변경된다. ViewModel은 일반적으로 class로 작성한다 why? class는 참조타입이고 struct는 값타입(데이터의 공유와 변경감지가 class보다 복잡할 수 있다...
지도 객체를 생성하는 방법 NMFMapView 하나의 지도는 뷰 요소와 인터에이스 요소로 구성. 뷰 요소는 화면에 지도를 나타내는 역할을 함. NMFNaverMapView 지도를 다루응 인터페이스 역할을 하는 인터페이스 요소를 담당 지도와 관련된 주요 UI 기능을 담당하며 대부분 이 클래스가 제공한다. 지도 화면은 뷰로 제공되며, NMFMapView 혹은 NMFNaverMapView 를 뷰 컨트롤러에 추가하면 화면에 지도가 나타난다. NMFMapView import UIKit import NMapsMap override func viewDidLoad() { super.viewDidLoad() // 지도 객체 생성 let mapView = NMFMapView(frame: view.frame) // view..