誰かが私のために何かを明確にすることができます. UITableView
言うためのアップルのドキュメント
`UITableView` overrides the layoutSubviews method of `UIView` so that it calls reloadData only when you create a new instance of `UITableView` or when you assign a new data source.
私は次の動作を得ています:
私のviewDidLoad
中で、私は持っていますtableView.dataSource = self.
私のgetDataFromDatabase
では、 を呼び出します[tableView reloadData]
。これはうまくいくように見えますが、テーブルに空の配列が取り込まれ、db 呼び出しが戻ってきたときに、データを含む配列をリロードしていると思います。
私は次のことをしようとしています:viewDidLoad
で、 を削除tableView.dataSource = self;
し、getDataFromDatabase
メソッドに追加します。例えば
(void)getDataFromDatabase
{
[getData completionHandler^() // an async db call
{
tableView.dataSource = self;
}];
}
これは機能していないようです。テーブルは移入されていません。[tableView reloadData]
を設定した後に追加すると機能しますdataSource = self
が、ドキュメントから、 「の新しいインスタンスを作成するとき、または新しいデータソースを割り当てるときにのみ reloadData を呼び出す」reloadData
を設定すると自動的に呼び出されるべきではありません。?dataSource = self
UITableView