title: The data couldn’t be read because it isn’t in the correct format
body: <p>Ok, I am now starting with iOS development and currently playing with NSData using Obj-C. Recently I'm using the URLSession:dataTask:didReceiveData method to get NSData using <strong>HTTP POST request</strong>. The server will be responding a JSON object containing a JSON array.</p>
  
  <p><strong><em>Something interesting is that when the response data is too large the NSLog part will print out: "The data couldn't be read because it isn't in the correct format"</em></strong>. Below is the function:</p>
  
  <pre><code>-(void)URLSession:(NSURLSession *)session dataTask:(NSURLSessionDataTask *)dataTask didReceiveData:(NSData *)data {
      NSError *error;
      // get data from NSData into NSDict
      NSDictionary *searchData = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingAllowFragments error:&amp;error];
      NSArray *test = [NSKeyedUnarchiver unarchiveObjectWithData:data];
      NSMutableDictionary *mdict = [NSJSONSerialization JSONObjectWithData:data options:NSJSONReadingMutableContainers error:&amp;error];
      NSLog(@"what: %@", mdict);
      NSLog(@"received data length: %@", [NSByteCountFormatter stringFromByteCount:data.length countStyle:NSByteCountFormatterCountStyleFile]);
      if (error) {
          NSLog(@"json error: %@", [error localizedDescription]);
      }
  }
  </code></pre>
  
  <p>Just wondering if anyone knows the potential reason causing this problem ??</p>
  
  <p>[Update]</p>
  
  <p>Well, an alternative to solve this problem might be using NSString for data storage. But would have to parse it by myself. I would prefer using NSDictionary though.</p>