この記事のGitHub プロジェクトを確認してください。カスタムセル(JKCallbacksTableViewCellクラス)のprepareForReuseメソッドにより、 tableViewCellIsPreparingForReuseメソッドで監視するテーブル(RootViewControllerクラス)に通知が送信されます。このメソッドは、関連付けキーとセルのイメージ ビューをリセットします。
では、テーブルのdequeueReusableCellWithIdentifierメソッドから nil 以外のセルを取得した後に、作成者がセルをリセットするのではなく、通知を通じて送信することを好んだのはなぜですか?
UITableViewCell のドキュメントによると、 prepareForReuse は dequeueReusableCellWithIdentifier の直前に呼び出されます。
UITableViewCell オブジェクトが再利用可能な場合 (つまり、再利用識別子がある場合)、このメソッドは、オブジェクトが UITableView メソッド dequeueReusableCellWithIdentifier: から返される直前に呼び出されます。
テストしたところ、dequeueReusableCellWithIdentifier が非 nill 値を返す場合、prepareForReuse の呼び出しと結合されます。
著者は JKCallbacksTableViewCell.h でアプリケーション ロジックの分離についてコメントしましたが、それはやり過ぎだと思います。非同期ディスパッチでパフォーマンスを最適化しますが、それらの遅い通知を送信していくつかのプロパティをリセットします...または、GCDについて何か不足していますか?