典型的なオブジェクト指向プログラミングでは、プロパティに直接アクセスするのではなく、そのプライベートプロパティと対話する関数を持つべきです。スウィフトは、プロパティのdidSetアクセサを持っていることがそのプロパティを民営化する必要があるか、私はそれからそれをそれが民営ないままにしてアクセスすることができるという事実を持つ親SwiftのdidSetアクセサでは、まだプロパティへのアクセスを非表示にする必要がありますか?
private var coins: Int = 0 {
didSet {
coinsLabel.text = "\(coins)"
}
}
func setCoins(amount: Int) {
coins = amount
}
func getCoinsAmount() {
return coins
}
//Setting the value from the parent
gameHUD.setCoins(amount: 50)
//retrieving the value from the parent
let coins = gameHUD.getCoinsAmount()
ですか、それは悪い習慣であるだけで民営ないコインを残すようにし、親から直接セット/取得する
gameHUD.coins = 50
let coins = gameHUD.coins
'coins'を読むための公開方法は提供していないので、設定してください。それはあなたが欲しいものですか? – rmaddy
私はできるだけ集中して質問を続けようとしていました。私がコインのプロパティをプライベートにする場合は、public getCoins()funcを追加しました –
OOPでは通常、フィールド*(データメンバー)に直接アクセスする必要はありません。プロパティのメカニズム(Obj-CまたはC#に似ています)は、すべてのデータメンバーのセッターとゲッターを定義しないように正確に作成されました。 – Sulthan