2016-04-14 10 views
0

iOSデリゲートとデータソースの動作原理を知りたいだけです。 たとえば、あるViewControllerで[tableView numberOfRowsInSection]を呼び出すとします。デリゲートとデータソースの動作原理

[tableView.dataSource numberOfRowsInSection]それは私に戻っているようです。しかし、どのように私は、[tableView.dataSource numberOfRowsInSection]を返さずに[のtableView numberOfRowsInSection]を呼び出すことができますか?

コードの後ろに何が起こっているのか分かりますか?少し早いですがお礼を。

+0

insert/delete/reloadメソッドを使用して変更があったことを通知するまで、テーブルビューは行数をキャッシュしています。 – jtbandes

答えて

0

iOSでは、委任とデータソースは委任パターンとして実装されています。それらの間の違いは、それが委任オブジェクトとの関係と関係にあることです。デリゲートはユーザーインターフェイスを制御し、データソースはデータを制御します。彼らはすべてプロトコルを採用しなければなりません。プロトコルでは、互いに関連して動作する一連のメソッドが定義されています。

テーブルビューの委任とデータソースは、委任パターンを使用するベストプラクティスの1つを採用することを目的として実装されています。委譲のデザインパターンはコールバック関数として時々応答しますが、テーブルビューのデータソースとデリゲートの場合は、テーブルビューのプロパティと動作を制御およびカスタマイズできます。

デリゲートとデータソースを実装すると、番号やセクション、行数、セルの種類、クリック数などの動作が行をカスタマイズすることができます。

関連する問題