2

サーバーから NSMutable 配列にデータを保存して、この画像に示すようにテーブル ビューでニュース フィードとして表示しようとしています。基本的には、Twitter のニュース フィードのようなものです。私がしたいのは、サーバーからデータを NSMutable 配列で取得し、その配列を使用してテーブル ビューに表示することです。これが正しい方法かどうかはわかりません。私は静的に追加しようとしましたが、動作しますが、Objective C の初心者であるため、動的に行う方法が本当にわかりません。この質問が本当にばかげていると思われる場合は申し訳ありません。前もって感謝します!

4

1 に答える 1

2

JSON を使用してデータを解析します。

dispatch_queue_t jsonParsingQueue = dispatch_queue_create("jsonParsingQueue", NULL);

// execute a task on that queue asynchronously
dispatch_async(jsonParsingQueue, ^{
    NSString *urlStr = @"YourURL";
    NSURL *url = [NSURL URLWithString:[urlStr stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]];

    NSMutableURLRequest *request = [[NSMutableURLRequest alloc]initWithURL: url];
    [request setHTTPMethod: @"GET"];
    NSData *response = [NSURLConnection sendSynchronousRequest:request returningResponse:nil error:nil];
    NSString *responseStr = [[NSString alloc] initWithData:response encoding:NSUTF8StringEncoding];
    NSData * jsonData = [responseStr dataUsingEncoding:NSUTF8StringEncoding];

    NSMutableArray *tempResults = [NSMutableArray alloc];
    NSError *jsonParsingError = nil;
    NSDictionary *jsonObject = [NSJSONSerialization JSONObjectWithData:jsonData options:0 error:&jsonParsingError];
    tempResults = jsonObject[@"posts"]; //Add the json key you would like to get

    self.arrayToDisplay = [tempResults copy]; //copy them to your NSMutableArray


    // some code on a main thread (delegates, notifications, UI updates...)
    dispatch_async(dispatch_get_main_queue(), ^{

        [self.myTableView reloadData];


    });
});
于 2013-11-13T15:29:01.343 に答える