私はios開発の初心者です。サーバーから動的データをテーブルビューにロードする必要があります。コードを知っている人は共有してください。
安倍さん、よろしくお願いします。
コア データとNSFetchedResultsControllerを使用し、tableview コントローラーのデリゲート メソッドを使用して、NSFetchedResultsController インスタンスから tableview を設定します。これは、データベースの削除、追加、およびあらゆる種類の更新を自動的に tableview に反映します。
モデルの複雑さのレベルと、必要なキャッシュ ポリシーの種類に応じて、テーブル ビューをリモート データ ソースに接続するさまざまな方法があります。ここで言いたいことはたくさんありますが、初心者の場合は、インターネット上のいくつかの例を参照することをお勧めします。
サーバー駆動型アプリを処理するための良い方法と良い例 (ソース コードを含む) を提供する、ネットワーク通信用のオープン ソース プロジェクトは "ほとんど" ありません。私が好む2つを挙げます:
ただし、とにかくUITableViewと関連プロトコルの基本を知る必要があることを思い出してください: UITableViewDelegateとUITableViewDataSource。ドキュメントは問題ありませんが、テーブル ビューに関するWWDC 2011 ポッドキャストを参照することもできます。
さらに、データの永続性も必要な場合は、illis と Bogdan が言ったように、 Core DataとNSFetchedResultControllersの調査を開始する必要がありますが、少し複雑になります。
実際、NSFetchedResultsControllerは理解するのが少し難しいです。
UITableViewデータは自分で処理するようにしてください。UITableViewDelegateプロトコルを見てください
従うべきいくつかのステップは次のとおりです。
1)UITableViewDelegateとUITableViewDataSourceを継承するクラスを作成します
@interface YourTableViewController: UITableViewController<UITableViewDelegate,UITableViewDataSource>
2)データを保持する配列を作成します
@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 *ident=@"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)サーバーからデータを取得するためのメソッド(NSURLConnection、ASIHTTPRequest(申し訳ありませんが、2つのハイパーリンクのみが許可されています)またはその他)を選択します
-(void) parseData:(NSString *) d {
NSArray * parsedData=[self someMethodToParseData:d];
[data setArray:parsedData];
[tableView reloadData];
}
ASIHTTPRequest ライブラリを使用して、サーバーからデータを取得できます。これに関する情報はhttp://allseeing-i.com/ASIHTTPRequest/にあります。
テーブルビューの詳細については、http://www.edumobile.org/iphone/iphone-programming-tutorials/how-to-use-tableview-in-iphone/このリンクを使用できます。
リンクのチュートリアルでは、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];
}
これらはすべて単なる使用法です。より複雑な状況を使用するには、より多くの例を経験する必要があります。サーバーからデータを取得してテーブルビューに表示するチュートリアルのコードをさらに追加します。