検索

ホームページ  >  に質問  >  本文

ios - 使用storyboard建立tableview运行时代码运行了三次是什么情况?

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中文网2771日前570

全員に返信(2)返信します

  • 巴扎黑

    巴扎黑2017-04-18 09:49:07

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

    リーリー

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

    リーリー

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

    返事
    0
  • 天蓬老师

    天蓬老师2017-04-18 09:49:07

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

    返事
    0
  • キャンセル返事