2017-02-06 7 views
0

私のiOSプロジェクトでは、jsonのセキュリティ保護されたURLからデータを含むテーブルを生成したいのですが、 (共有*) "、問題は、最初のセルにデータがロードされる前に空のデータが作成されるということです。jsonグローバル関数からオブジェクトをロードした後にuitableviewをロードする方法

データのロード後にテーブルを生成するにはどうすればよいですか? - 通知:最初のセルが画面に表示されます。データが空になります。 スクロールしてセルが消えると、他の表示セルに正しくロードされたデータが表示されます。データが正しくロードされていますが、どのようにしてこの問題を解決できますかここに画像の説明

+1

コードを表示します。リクエストは非同期で行う必要があります。 JSONを取得したらtableViewをリロードし、その間に「読み込み中」の画面を表示するのはあなた次第です。 – Larme

+0

あなたのコードを表示することができます – Sunny

答えて

0

上記のテーブルのテーブルビューを使用していますか?もしそうなら、あなたはjsonデータがロードされた後に[tableView reloadData]を呼び出しましたか?

NSURL *url = [NSURL URLWithString:@"htttP://www.google.com"]; 
 

 
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url cachePolicy:NSURLRequestUseProtocolCachePolicy timeoutInterval:60]; 
 
[request setHTTPMethod:@"GET"]; 
 
[request addValue:@"application/json" forHTTPHeaderField:@"Content-Type"]; 
 

 
NSURLSessionConfiguration *sessionConfiguration = [NSURLSessionConfiguration defaultSessionConfiguration]; 
 
NSURLSession *session = [NSURLSession sharedSession]; 
 
session = [NSURLSession sessionWithConfiguration:sessionConfiguration delegate:self delegateQueue:Nil]; 
 

 
[[session dataTaskWithRequest:request completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) 
 
    { 
 
     dispatch_async(dispatch_get_main_queue(), ^{ 
 
      NSHTTPURLResponse *httpResponse = (NSHTTPURLResponse *)response; 
 
      if(!error) 
 
      { 
 
       NSError *error; 
 
       NSMutableArray *json = [NSJSONSerialization JSONObjectWithData:data options:kNilOptions error:&error]; 
 
       NSLog(@"json - %@", json); 
 
       block(json, error,httpResponse.statusCode); 
 
      } 
 
      else 
 
      { 
 
       block(nil, error,httpResponse.statusCode); 
 
      } 
 
     }); 
 
     
 
    }]resume];

+0

はい、私はjsonの成功後に電話しましたが、デバッガで私のことを追跡したときに私はそれを見た [manager GET:strURLパラメータ:nilの進捗状況:なし成功:^(NSURLSessionTask * task、id responseObject) {}} 失敗:^(NSURLSessionDataTask * _Nullableタスク、NSError * _Nonnullエラー){}]; 最初のチェックで失敗しなかったか成功しなかったのですか –

+0

上記の私のコメントを参照してください。JSONブロック内に返されたものがあるかどうかを確認できますか? – jokerday

0

あなたのtableViewデータソースは、(あなたはJSONデータを格納するために使用しているものは何でも)、デNSMutableArrayのかNSArrayのから情報を取得していることを確認します。 JSONデータがダウンロードされたら、この配列に格納し、メソッド[tableview reloadData]を呼び出します。

関連する問題