質問: 例えば、マイページ画面にプロフィール部分を上部に表示させるようなものをつくりたいとき、ソースコードでプロフィール部分を作成する場合、M、cのどちらにすればいいのでしょうか
回答: まずなぜMVCに分けるのかということについて 別にMVCに分けるとエラーが起きないわけでも、画面のデザインが綺麗になるわけでもないのですが MVCに分けることでコードを綺麗にし、人間にとってわかりやすいように分離するという役割があります。 その上で質問のマイページの例で言うと例えばMVCではなくVを使わずMCの場合 いろいろ省いてて適当なコードですが ``` // モデル var userModel: UserModel? var userName : UILabel = UILabel() var userIcon : UILabel = UILabel() var userFollower : UILabel = UILabel() override func viewDidLoad() { super.viewDidLoad() userModel = UserModel.findId(1) userName.text = userModel.name userIcon.image = userModel.icon userFollower.text = String(userModel.FollowerCount) view.addSubview(userName) view.addSubview(userIcon) view.addSubview(userFollower) } ``` といったようにController内(正確にはViewControllerですが、、)でUserModelからデータを取得しさらにデザインも管理するといった方法と ``` // モデル var userModel: UserModel? // カスタムビュー var userView : ProfileView = ProfileView() override func viewDidLoad() { super.viewDidLoad() userModel = UserModel.findId(1) userView.data = userModel view.addSubview(userView) } ``` のようにViewとControllerを分けて管理するのでは分けて管理した方が見やすくなくだろうというのがMVCに分けるメリットだと思います。 ただ上のようなシンプルなコードの場合は無理して分離しなくてもそこまで見やすさも変わらないので、好みによるところもあるかと ただ例えばフォローボタンを実装したとき、コメント機能をつけたときと、内容がより複雑になるにつれてだんだんとMVCに分けることでその効果を実感できるようになるのかなと