2012-08-01 14 views

答えて

5

コアデータとNSFetchedResultsControllerを、NSFetchedResultsControllerインスタンスのtableviewコントローラのpopulate tableviewのデリゲートメソッドを使用して使用します。これは、データベース上での自動的な削除、追加、およびあらゆる種類の更新を自動的にtableviewに反映します。

0

ASIHTTPRequestライブラリを使用して、サーバーからデータを取得できます。あなたはそれに関するいくつかの情報を見つけることができますhttp://allseeing-i.com/ASIHTTPRequest/

http://www.edumobile.org/iphone/iphone-programming-tutorials/how-to-use-tableview-in-iphone/このリンクを使用すると、tableviewの詳細情報が表示されます。

リンクのチュートリアルでは、viewDidloadメソッドでデータをリクエストする必要があります。

- (void)viewDidLoad { 

    // Request your data on this line. 
    /*NSArray *array = [[NSArray alloc]  initWithObjects:@"Sleepy",@"Sneezy",@"Bashful",@"Happy",@"Doc", 
         @"Grmpy",@"Dopey",@"Thorin",@"Dorin",@"Nori", 
         @"Ori",@"Balin",@"Dwalin",@"Fili",@"Kili",@"Oin",             
         @"Gloin",@"Bifur",@"Bofur",@"Bombur",nil ];*/ 

    self.listData = array; 
    [array release]; 
    [super viewDidLoad]; 
} 

これらはすべて単なる使い方です。より複雑な状況を使用するには、より多くの例を経験する必要があります。チュートリアルのコードを追加してサーバーからデータを取得し、tableviewに表示します。

2

実際、NSFetchedResultsControllerは理解しにくいです。

あなた自身でUITableViewデータを処理するようにしてください。

@interface YourTableViewController: UITableViewController<UITableViewDelegate,UITableViewDataSource> 

2)あなたのデータを保持する配列を作成しUITableViewDelegateとUITableViewDataSourceを継承するクラスを作成します)

1:あなたがフォローするためにいくつかの手順は次のとおりです。ここUITableViewDelegate protocol

を見てみましょう

@property (nonatomic,retain) NSMutableArray *data; 

3)は、このメソッドを実装します

- (void) tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath { 
     DataObject *d=[data objectAtIndex:indexPath.row]; // selected data, now you can handle it   
    } 

    - (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section { 
     return data.count; 
    } 

    - (UITableViewCell *)tableView:(UITableView *)mtableView cellForRowAtIndexPath:(NSIndexPath *)indexPath { 
     NSString *[email protected]"CatalogCell";  
     UITableViewCell *cell=(UITableViewCell *)[tableView dequeueReusableCellWithIdentifier:ident];  
     if (cell==nil) {   
      cell=[[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:ident] autorelease];   
     } 
     DataObject *d=[data objectAtIndex:indexPath.row]; 
     [cell.textLabel setText:d.someField];  
    } 

4)上のモデルとの複雑さのレベルに応じて、サーバ

-(void) parseData:(NSString *) d { 
    NSArray * parsedData=[self someMethodToParseData:d]; 
    [data setArray:parsedData]; 
    [tableView reloadData];  
} 
3

からデータを取得するために、いくつかの方法(NSURLConnection、ASIHTTPRequest(申し訳ありませんが、唯一の2のハイパーリンクが私のために許可される)、または他の)を選択しますどのような種類のキャッシュポリシーが必要か、テーブルビューをリモートデータソースに接続するさまざまな方法があります。ここにはたくさんのことがありますが、初心者の方にはインターネットのいくつかの例を見てみるのが良いでしょう。

サーバードリブンアプリケーションを処理するための良い方法と良い例(ソースコードが含まれています)を提供するネットワーク通信のためのオープンソースプロジェクトはほとんどありません。私は私が好む2を引用:

  • AFNetworking:あなたの必要性
  • RestKitに合わせてこのライブラリとのUITableViewControllerと例のソースがあります:あなたは、サーバー返されたデータをマッピングし、永続化したい場合に便利になりますローカルモデルへ。しかし、これはもう少しの学習時間を必要とするかもしれません。

しかし、あなたはとにかくUITableViewの基礎と関連のプロトコルを知っておく必要があることを思い出させる:UITableViewDelegateUITableViewDataSourceを。ドキュメントはOKですが、テーブルビューについてはWWDC 2011 podcastをご覧ください。

さらに、データの永続性も必要な場合は、Core DataNSFetchedResultControllersをillisとBogdanが言ったように調べ始める必要がありますが、やり方がやや難しくなり始めます。

関連する問題