ios - 使用storyboard建立tableview运行时代码运行了三次是什么情况?
PHP中文网
PHP中文网 2017-04-18 09:47:07
0
2
581
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
    }
}
PHP中文网
PHP中文网

认证高级PHP讲师

全員に返信(2)
巴扎黑

このコードは、テーブルビューのロードと同じ回数実行されます。データソースの設定時に 1 回実行され、その後ロードごとに 1 回実行されます

リーリー

以下のコードが実行される回数は、セクションの数によって異なります。これはセクションの数だけ実行され、各ロード後に現在のテーブルビューのセクションの数に応じてロードされます。

リーリー

上記はコード実行回数のロジックです。
ご質問です。理論的に言えば、通常、Stroyboard にはデータが保存されています。データがない場合でも、1 回 (データがある場合は複数回) 実行されます。これは、デフォルトのデータソース ポインターが原因です。 コード内でデータソースを設定すると、自然にリロードされます。そのため、複数回実行されました。 iOS 開発の場合は、依然として純粋なコードが推奨されます。

いいねを押す +0
Peter_Zhu

iOS 10.1 のテストは 5 回実行されました...
TableView が初期化から画面に表示されるまで一連のプロセスを経ていることはわかりません。はい、Apple はおそらくこの値を保存しないでしょう。
ブレークポイントの呼び出しスタックには何も表示されません...私の理解では、テーブルは必要になるたびにデリゲートから要求でき、パフォーマンスへの影響はありません。真相を知りたければ、おそらくソースコードを見る必要があります...

いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート