サブクラスUITableViewCell
は、NSNotificationCenter
にオブザーバを追加します。awakeFromNib
です。しかし、このクラスには暗黙的にアンラップされたオプションのasプロパティもあります。 aProperty
を設定することができます前に、暗黙のうちにアンラップされたオプションのレジスタを持つUITableViewCellは、いつ通知用に登録する必要がありますか?
class aCell: UITableViewCell() {
var aProperty: Int!
override func awakeFromNib() {
super.awakeFromNib()
NSNotificationCenter.defaultCenter().addObserver(...)
}
func notificationReceived() {
print(aProperty)
}
}
しかしawakeFromNib
が呼び出されます。それがnilとアプリがクラッシュしている間
let cell = tableView.dequeueReusableCellWithIdentifier(...)
cell.aProperty = 1
通知のイベントでプロパティを設定する前に、notificationReceived
はaProperty
にアクセスします。
プロパティを設定した後、メソッドとして手動で呼び出す必要がない場合、セルは通知のためにどこに登録する必要がありますか?
にnilでないことを確認すると良いでしょう、それはaPropertyする必要がある非オプションのですか?あなたのビジネスロジックを壊さないなら、それをオプションにすることができます。例えば"var aProperty:Int?" – firstinq
私はいつもそれを包む必要はないので、利便性の問題です。 – Manuel
その場合は、1. "notificationReceived"関数でプロパティがnilかどうかをチェックするか、または2.そのプロパティの初期値を設定します。 – firstinq