Как указывает MacOS Developer Library , connection: didReceiveData может вызываться несколько раз, если данные получены в виде фрагментов. Это означает, что вы должны сохранить все чанки в некоторой переменной и выполнить обработку данных в методе connectionDidFinishLoading. например,
NSMutableData *receivedData = [[NSMutableData alloc] init];
- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data
{
// Append the new data to receivedData.
[receivedData appendData:data];
}
- (void)connectionDidFinishLoading:(NSURLConnection *)connection
{
// do something with the data, for example log:
NSLog(@"data: %@", [[NSString alloc] initWithData:receivedData encoding:NSUTF8StringEncoding]
}