以下のコードの理解が正しいか見てほしいです。
① userプロパティにUser?型を指定している理由
・User構造体内にあるプロパティをuserプロパティ内で利用したいため。
② didSetとは?
・userに値がセットされたらdidSetが呼ばれる
// ProfileController.swift -------このコードです------------- var user: User? { ------------------------------ didSet { navigationItem.title = user?.username } }
// User.swift import Foundation struct User { let email: String let fullname: String let profileImageUrl: String let username: String let uid: String init(dictionary: [String: Any]) { self.email = dictionary["email"] as? String ?? "" self.fullname = dictionary["fullname"] as? String ?? "" self.profileImageUrl = dictionary["profileImageUrl"] as? String ?? "" self.username = dictionary["username"] as? String ?? "" self.uid = dictionary["uid"] as? String ?? "" } }
「User構造体内にあるプロパティをuserプロパティ内で利用したいため」という言いまわしにちょっと違和感を感じます。もちろん、User 構造体のプロパティを使えることは事実ですが、メインの目的はユーザーの情報を持つことであって、プロパティを使えるのはその結果できることの一つ、という感覚になります。
(User ではなく User? なのは TsukubaDepot さんの回答の通り、最初はユーザーの情報が存在しない、というような場合に nil を許容するためです。)
そのような目的が先にあるのですね!
将来自分でコードを書いていく上で貴重な考え方ですね。
コメントありがとうございます。
回答1件
あなたの回答
tips
プレビュー