minuco
article thumbnail
[TIL] MVVM(3)
iOS/TIL 2023. 12. 5. 01:30

데이터 전달. 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..

article thumbnail
[TIL] MVVM(2)
iOS/TIL 2023. 11. 28. 11:40

내용: 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이 눌렸다는 걸 ..

article thumbnail
[TIL] MVVM(1)
iOS/TIL 2023. 11. 25. 15:57

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보다 복잡할 수 있다...