2011-12-22 26 views
0

私は今かなり失われており、どこに問題があるのか​​わかりません。UITableViewはデータを表示しません

Iは(ARC &ストーリーボードを有する)単一ビューアプリケーションを作成し、私のViewControllerへのデリゲートとデータソースを設定し、プロトコル方法として

- (NSInteger) tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
    return [self.games count]; 
} 

- (UITableViewCell *) tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 

    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"Cell"]; 
    if(cell == nil) { 
     cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:@"Cell"]; 
    } 

    cell.textLabel.text = [self.games objectAtIndex:[indexPath row]]; 

    return cell; 
} 

を実装し、MAINVIEWにテーブルビューを追加しました。

self.gamesは、いくつかのNSStringを含む配列です。 アプリケーションをビルドして実行すると、空のTableViewが表示されます。

何が間違っていますか?

+1

'cell.textLabel.text = @それは問題があなたの' tableview'ない場合は作品の中にも、あなたの配列である、その後働くthat.Ifまず「この通常のテスト用のテキストは、」 'てみてください。まず、問題がどこにあるか教えてください。 – Emon

+0

本当に私の配列と関係がありました。 'numberOfRowInSection'を5に設定して、あなたが提案したものを返しました。 私はこのように配列を初期化しています: '' NSArray alloc 'initWithObjects:@ "Red"、@ "Green"、 @ "Blue"、@ "Indigo"、@ "Violet"、nil] ; ' (弱い非原子的な性質)、どうしてうまくいかないのでしょうか? – tonekk

+0

実際には、問題がどこにあるのか、つまり 'self.games'Arrayの問題か' tableview'の問題を発見したかったのです。私の質問によると、あなたは究極の結果を得ていますか? 'この通常のテストテキスト'がテーブルビューのセルに印刷されていますか? – Emon

答えて

2

デリゲートソース&をtableViewのデータソースに設定していますか?

クラスをUITableViewDelegateUITableViewDataSourceのプロトコルに準拠させる必要があります。 (cellForRowAtIndexPath:UITableViewDataSourceプロトコルである)

あなた.hファイルにクラスのインターフェイス定義IEの角括弧を使用してこれを行います。その後、あなたの.mファイルにあなたがのデリゲートファイルの所有者を設定する必要が

@interface myViewController : UIViewController <UITableViewDelegate, UITableViewDataSource> {...} 

tableViewとdataSourceを使用します。これはそうです -

[tableView setDelegate:self]; 
[tableView setDataSource:self]; 

これをショットします。

+0

それは準拠しています、私はそれらのプロトコルを使用しました。 デリゲートとデータソースをインターフェイスビルダーで設定しました。 – tonekk

+0

それから、 '[tableView reloadData];しようとすると、iosはテーブルの内容を更新し、そのデリゲートのコードが使用されます。 –

+0

配列(上記のコメントを参照)を使用しても、何かが配列に間違っている必要があります... – tonekk

0

ゲームプロパティを弱くするのではなく強くしてみましたか?私はARCに精通していませんが、使用する前にプロパティがゼロに設定されているようです。

+0

私はARCを少し調べましたが、私が理解するところでは、ゲームプロパティは強くなければなりません。あなたはそれを自動リリースされた配列に向けて指していました。あなたが行ったメソッドが終了すると、その配列は解放され、gamesプロパティはnilに設定されます。 – Darren

0

私はこのコードが不足していると思います。

- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView { 
return 1; 

}

関連する問題