正しい形式ではないため、データを読み取ることができませんでした



Data Couldn T Be Read Because It Isn T Correct Format



  • なぜなら-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data get data必ずしも最終的なものではないdataそして何度も呼び出される可能性があるので、純粋で完全なものを得るにはjson 1つを見つける必要がありますNSURLSessionDelegate多くのメソッドの中で呼び出す必要があり、要求プロセス全体の完了後に呼び出される最後のメソッドです。このメソッドは1回しか呼び出すことができません。
  • - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(nullable NSError *)errorこの問題を完全に解決しました。通常はsessionをリリースするため、このメソッドにも配置されます。
  • 上記の例はコードを解決します
#pragma mark - NSURLSessionDelegate method #pragma mark - Set a global variable to receive data NSMutableData *_data -(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data { if(_data) { _data = [[NSMutableData alloc] init] } [_data appendData:data] } - (void)URLSession:(NSURLSession *)session task:(NSURLSessionTask *)task didCompleteWithError:(nullable NSError *)error { #pragmaGet _data here, you can get the complete json NSDictionary *dict = [NSJSONSerialization JSONObjectWithData:_data options:NSJSONReadingMutableLeaves error:&error] [session finishTasksAndInvalidate] }
  • ループが表示されなかった後の5,000リクエストdata = 1KBケース
  • ブロックの使用方法はプロキシを使用せず、ブロックのデータは発生しません。