작성
·
73
0
class MusicViewModel {
var music: Music? {
didSet {
onCompleted() // 시점을 알려줌
}
}
var onCompleted: () -> () = { }
}
class ViewController: UIViewController {
var viewModel = MusicViewModel()
override func viewDidLoad() {
super.viewDidLoad()
viewModel.onCompleted = {
self.configureUI()
}
// 뷰모델에서 클로저를 호출하면 이부분이 호출됨
}
안녕하세요 앨런님!
궁금한게 있어서 질문 남기게 되었습니다.
섹션 뒤쪽에 MVVM 강의에서 뷰모델의 상태변화를 코드를 보면,
뷰모델에서 데이터에 상태변화가 생기면 didSet을 통해 onComplete() 시점을 알려주고, 뷰컨트롤러에서는 해당 onComplete에 ui업데이트를 하는 함수를 실행코드를 넣어주게됩니다!
이렇게 didSet과 클로저를 통해서 뷰모델과 뷰컨에서의 ui 업데이트를 하는 코드가 현업에서도 많이 사용하는지 궁금합니다!
이 방법외에도 Combine을 사용해도 되는건지도 궁금합니다!
항상 친절하게 답변 남겨주셔서 너무 감사합니다 :)새해복 많이 받으세요 🧧
답변 1
0
안녕하세요 밀라이 님.
아 네, 현업에서는 거의 안쓰긴 하죠!
왜냐면.. 말씀하신 것처럼.. 보통 이런 종류의 데이터 바인딩은 Combine이나 RxSwift를 쓰니까요.
따라서 Combine /RxSwift의 반응형 프로그래밍 개념을.. 더 직관적으로 이해하기 위해서.. 어떤 개념들에서 시작하게 되었는지를 명확하게 아시는 것이 중요하니.. 개념 이해 측면에서 설명드린 것이라고 보시면 될 것 같아요!
고맙습니다. :)
늦은시간인데도 빠르게 답변해주셔서 감사합니다 🙂 !!