connection:didReceiveData:
вызывается много раз. Вы должны взять эти данные и добавить их к данным, которые вы получили при последнем вызове. Только когда вы получаете connectionDidFinishLoading
, вы знаете, что передача завершена, и у вас есть все эти данные.
То есть, если вы получили некоторые данные, это еще не значит, что это сделано. Весьма вероятно, что серверу требуется так много времени, чтобы завершить запрос или у вас возникнут другие проблемы в вашем коде, например, чрезмерная обработка данных в ваших обратных вызовах, задерживающая выполнение окончательного обратного вызова.