Я надеюсь, что этот код подключается к серверу в два раза, поэтому изображения загрузки медленно.
код вы покажете ли не подключиться к серверу и загрузить в два раза, хотя это легко понять, почему это может показаться, чтобы сделать это.
Итак, если вы ищете причину, по которой ваша загрузка идет медленно, и думаю, что это может быть связано с двойной загрузкой, то это не так.
Если вы просто не поняли код здесь есть схема того, как она работает:
- Код является загрузки задача. Такая задача загружает URL-адрес и сохраняет его содержимое во временном файле.
- Когда задача загрузки завершена, он вызывает обработчик завершения, передавая ему URL-адрес локального временного файла (не).
- Обработчик завершения считывает содержимое локального файла в объект
NSData
с использованием dataWithContentsOfURL:
. Этот метод также можно использовать для чтения удаленного URL-адреса, поэтому быстрый взгляд может привести к тому, что кто-то подумает, что это повторение загрузки, но это не так - это чтение локального файла.
Возможно, вы спросите, почему используется временный файл, а не содержимое URL-адреса, которое доставляется непосредственно в качестве объекта NSData
? Ответ заключается в том, что можно использовать задачу данных , вам нужно будет изучить документацию по задачам загрузки и передачи данных.
Подробнее см. Apple's NSURLSession Class Reference и URL Session Programming Guide.
HTH
Этот код не будет подключаться к серверу дважды. – dan