import UIKit
class TaskListController: UITableViewController {
override func viewDidLoad() {
super.viewDidLoad()
}
// MARK: - Table view data source
override func numberOfSections(in tableView: UITableView) -> Int {
return 1
}
override func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
print("Test")
return 0
}
}
巴扎黑2017-04-18 09:49:07
このコードは、テーブルビューのロードと同じ回数実行されます。データソースの設定時に 1 回実行され、その後ロードごとに 1 回実行されます
リーリー以下のコードが実行される回数は、セクションの数によって異なります。これはセクションの数だけ実行され、各ロード後に現在のテーブルビューのセクションの数に応じてロードされます。
リーリー上記はコード実行回数のロジックです。
ご質問です。理論的に言えば、通常、Stroyboard にはデータが保存されています。データがない場合でも、1 回 (データがある場合は複数回) 実行されます。これは、デフォルトのデータソース ポインターが原因です。 コード内でデータソースを設定すると、自然にリロードされます。そのため、複数回実行されました。 iOS 開発の場合は、依然として純粋なコードが推奨されます。
天蓬老师2017-04-18 09:49:07
iOS 10.1 のテストは 5 回実行されました...
TableView が初期化から画面に表示されるまで一連のプロセスを経ていることはわかりません。はい、Apple はおそらくこの値を保存しないでしょう。
ブレークポイントの呼び出しスタックには何も表示されません...私の理解では、テーブルは必要になるたびにデリゲートから要求でき、パフォーマンスへの影響はありません。真相を知りたければ、おそらくソースコードを見る必要があります...