Я работаю над приложением, где мне нужно загружать множество изображений локально (чтобы они были доступны в автономном режиме). Количество изображений может быть 100 - 10000. Каждое изображение может отличаться от 100K-250KЗагрузка большого количества изображений в приложении для iPad
Я могу сделать это с помощью NSOperationQueue, и у меня есть код, чтобы сделать эту работу уже, но этот вопрос более концептуальный. Я не уверен, что лучше всего подходит для этого.
1) Скачайте все изображения сразу после входа пользователя в систему в первый раз? Основываясь на количестве изображений, это может занять много времени, и что, если пользователь закрывает приложение тем временем. Я понимаю, что существует ограничение на время, которое может быть потрачено на фоновый процесс в этом случае? Честно говоря, я не хочу ничего делать в фоновом режиме (т. Е. Когда приложение закрыто)
2) Загружаю ли изображения, когда определенная категория выбрана пользователем? Если в категории 800 изображений, то что произойдет, если пользователь выберет другую категорию, прежде чем все эти 800 изображений будут завершены? Я всегда могу начать загружать потоки, но будет ли поток продолжать работать, если пользователь выбирает другую категорию?
3) Поместите что-нибудь в «Настройки», чтобы пользователь сам решил это. Что-то вроде «Всего изображений: 8000» Доступные изображения: 2000 и кнопка, чтобы сказать «Загрузить все», в котором будет отображаться UIProgressView о том, что происходит ..., поэтому пользователь, вероятно, подождет, пока все будет сделано.
Или какой-либо другой подход?
Мысли?
Какое приложение это? Если изображения являются частью приложения, то просто свяжите его с приложением. Если изображения представляют собой контент пользователя или какой-либо контент, который вы обслуживаете, вам нужно подумать, нужны ли вам сразу все изображения или нет - обычно я не думаю. – nhahtdh
Это созданный пользователем контент, поэтому его нельзя связать с приложением. –
Вы можете выполнять прогрессивную загрузку (отображать фиксированное число, загружать больше только при запросах пользователя) и/или создавать миниатюру для всех изображений, чтобы вы загружали только полное изображение, когда пользователь хочет увидеть его подробно. Другой способ - показать экран загрузки, в котором вы загружаете все локально в первый раз, но это может занять много времени, если слишком много изображений, и пользователь может ragequit, если им приходится слишком долго ждать. – nhahtdh