6

私はios開発の初心者です。サーバーから動的データをテーブルビューにロードする必要があります。コードを知っている人は共有してください。

安倍さん、よろしくお願いします。

4

4 に答える 4

5

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

于 2012-08-01T09:49:02.410 に答える
3

モデルの複雑さのレベルと、必要なキャッシュ ポリシーの種類に応じて、テーブル ビューをリモート データ ソースに接続するさまざまな方法があります。ここで言いたいことはたくさんありますが、初心者の場合は、インターネット上のいくつかの例を参照することをお勧めします。

サーバー駆動型アプリを処理するための良い方法と良い例 (ソース コードを含む) を提供する、ネットワーク通信用のオープン ソース プロジェクトは "ほとんど" ありません。私が好む2つを挙げます:

  • AFNetworking : このライブラリと UITableViewController を使用したソースの例があり、ニーズに合う可能性があります
  • RestKit : サーバーから返されたデータをローカル モデルにマップして保持する場合に役立ちます。ただし、これにはさらに学習時間が必要になる場合があります。

ただし、とにかくUITableViewと関連プロトコルの基本を知る必要があることを思い出してください: UITableViewDelegateUITableViewDataSource。ドキュメントは問題ありませんが、テーブル ビューに関するWWDC 2011 ポッドキャストを参照することもできます。

さらに、データの永続性も必要な場合は、illis と Bogdan が言ったように、 Core DataNSFetchedResultControllersの調査を開始する必要がありますが、少し複雑になります。

于 2012-08-01T10:26:33.280 に答える
2

実際、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];    
}
于 2012-08-01T10:16:16.477 に答える
0

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];
}

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

于 2012-08-01T09:58:00.777 に答える