2012-01-01 6 views
1

私はUITableViewでした。私はWebサービスからデータを読み込んでいます。 Webサービスからのデータはいつでも変更される可能性があるため、データを定期的に更新する必要があります。頻繁に変化するNSArrayからUItableViewデータをリフレッシュ

私はデータを更新してNSArrayに保存しましたが、UITableViewはこれらのデータを表示しません。

私は

[myTableView reloadData]; 

をしようとしたが、それは効果がありません。

EDIT:

私はUiTableViewNSArrayからデータをロードするすべてのメソッドを実装しました。 これは、NSArrayがViewDidLoadで初期化されたときに機能します。

ただし、アプリケーションの実行中にNSArrayが変更された場合、UITableViewはこれらの変更を表示しません。

+0

テーブルビューに少なくとも最初のデータセットが表示される場合は、セル値を更新するときにデータソースメソッドで間違いが起きている可能性があります。 ' - (UITableViewCell *)のコードを投稿できますか?tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath;'? –

+0

ビューがロードされると、NSArrayの長さが0であるため、UITableViewに何も表示されません。ビューがロードされた後にデータが移入され、データが頻繁に更新されるため、ビューをロードする必要があります。それをForexテーブルビューとして想像してください。 – Kassem

+0

IBOutletが配線されていますか?新しい情報でデータソースを更新するメソッドは、defメソッドが呼び出され、updateメソッドが完了した後に配列defに値が入っていますか?私はそれを踏んですべてのことを二重にチェックしたい、それは普通あなたが見落とした単純なものである。 – bennythemink

答えて

2

あなたは、セルを設定するには、このメソッドを使用し、具体的- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath

UITableViewDataSourceデリゲートプロトコルを実装する必要があります。 rowプロパティーをindexPathに設定すると、設定しているセルを特定し、アレイのデータを提供することができます。例えば

- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
if (cell == nil) { 
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier]; 
} 
id item = [dataArray objectAtIndex:indexPath.row]; // Whatever data you're storing in your array 
cell.textLabel.text = [item description]; // Substitute this for whatever you want to do with your cell. 
} 

はEDIT:

reloadDataが描画されるすべてのセルがあるかどうかを確認するために
- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView
- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section
を呼び出す必要があります。これらのメソッドも実装して、ゼロ以外の値を返すようにしてください。そうしないと、テーブルビューはセルを描画しようとせず、- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPathは呼び出されません。

解析
ます。また、リモート・データ・ドリブンのテーブルがずっと簡単にするために主張しthis libraryに興味があるかもしれません。

+0

質問を編集してさらに説明を追加しました。 – Kassem

0

コンテンツをテーブルに配置する関数を呼び出す必要があります。

関連する問題