2016-04-22 7 views
2

私はUITableView DataSourceメソッドにブレークポイントを設定するときしかし、サブビューとしてUIViewControllerUITableViewを追加しました:?のUITableViewオブジェクトは、3回の初期化の必要

- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section 
{ 
    return 1; 
} 

私はブレークポイントが3倍に当たる見つけます。何故ですか?

+0

これは、行数だけを実行します。それ以外の場合は、numberOfSections Delegateを宣言しています。 ? –

+0

どこでもreloadDataを使いましたか?私は、あなたは理由をセクションデリゲートメソッドの数が3リターン –

+0

@BalajiRamakrishnanは、私は、 – windy

答えて

0

あなたが言及している方法はデータソースメソッドであり、初期化とは関係ありません。これは、テーブル内にいくつの行があるかを尋ねるために、tableviewによって呼び出される単なるメソッドです。テーブルビューがデータソースに何行あるかをテーブルに何回問い合わせるかについては、あまり気にしません。

インターフェイスビルダーで別のビューのサブビューとしてテーブルビューを作成したとします。これは、テーブルビューを初期化するときです。インタフェースビルダで作成されたすべてのオブジェクトは、インタフェースビルダで初期化されています。 Xcodeはコンパイル中にこれらのオブジェクトをアーカイブし(Appleはフリーズドライと呼んでいます)、実行時にオブジェクトはアーカイブされません。

インターフェイスビルダーで作成されたオブジェクトは、アーカイブ中にコンセントに接続され、画面に配置されます。次にオブジェクトがデリゲートとデータソースへの呼び出しを実行します。これは複数回起こる可能性があります。

これが役に立ちます。

+0

おかげで1セクション – windy

+0

に何の問題いくつかの詳細を知っているしたいと思いますどのような詳細を知りたいですか?あなたが解決しようとしている問題は何ですか? – MacUserT

関連する問題