7

簡単なものが欠けていると思いますが、それが何であるか正確にはわかりません。

を使用してアプリをセットアップしようとしUITabViewControllerていますが、タブの 1 つに UITableView と UISearchBar があります (ただし、Navigation Controller はありません)。Interface Builder ですべてのタブを設定しUITabViewController、ビューは独自の xib ファイルにあります。のついたタブのxibファイルをUITableView以下のように設定して接続します。

ブラウザ内のもの: ファイルの所有者 (クラスは UITableViewController の子である私のカスタム クラスです) ビュー -> ビュー

View (class UIView, reference view -> File's owner) contains:
      UITableView (if i try and set references to the data source / delegate, the app breaks)
      UISearchBar (unconfigured at the moment)

このセットアップはすべての項目を表示し、ロックアップしませんが、UITableView を使用してタブを読み込もうとするとクラッシュせずに DataSource を割り当てることができません。IB またはコードで、このテーブルにデータを取得するにはどうすればよいですか? 私の考えは次のとおりです。

  1. カスタム UITableView クラスを実装し、IB でテーブル ビューに接続するか、Xcode でカスタム テーブルビュー コントローラーに接続します。
  2. 機能するまで、頭またはラップトップを壁にぶつけます。

更新:これは、Tableview のデータ ソースに接続し、File Owner (カスタム tableviewcontroller のクラス) にデリゲートするときに、シミュレーターがコンソールにプッシュするエラーです。

2/14/09 6:59:12 PM TabBarWillbeRight[33172] * キャッチされない例外 'NSInvalidArgumentException' によるアプリの終了、理由: '* -[UIViewController tableView:numberOfRowsInSection:]: 認識されないセレクターがインスタンス 0x523760 に送信されました

4

4 に答える 4

24

同じエラーメッセージで同様の問題が発生しました。簡単な解決策は、IBのTabBarControllerのビュー(「ビューのロード元..」を示す灰色の長方形)をクリックし、要素のクラスをTableViewControllerのクラス名に変更することでした。

于 2010-01-22T08:52:06.090 に答える
2

私も同じ問題を抱えていました。1. ビューがデータソース メソッドを実装していることを確認します。 2. IB で、ビューのクラス IDをデータソース メソッドを実装するクラスに設定します。3. IB でビューを右クリックし、データソースがViewではなくFiles Ownerに接続されていることを確認します IB で TableView を接続する

于 2011-05-15T15:43:16.600 に答える
1

クラッシュせずに DataSource を割り当てることができない場合は、DataSource デリゲート メソッドの一部が実装されていないことを示しています。

特に、データ ソースとして割り当てるクラスは UITableViewDataSource を実装する必要があります

于 2009-02-15T00:12:08.410 に答える
0

クラスがUITableViewDelegateクラスとUITableViewDataSourceクラスを実装していることを確認しますか?ビューコントローラの宣言も確認してください。.hファイルは次のようになります

@interface MyClass:UIViewController <UITableViewDelegate,UITableViewDataSource>

他のすべてが整っているようです。クラス宣言でUITableViewDelegateとDataSourceを実装するように指定されていない場合、データソースを設定するとすぐに例外が発生します。

于 2009-02-15T14:34:17.577 に答える