2010-09-17 3 views
0

Я создаю многослойное приложение для iPhone с помощью навигационного контроллера, и приложение включает в себя множество изображений на каждом слое. Мне было интересно, стоит ли использовать базу данных SQLite для хранения всех изображений и при необходимости извлекать их на страницу или просто добавить все изображения в папку ресурсов и поместить их в приложение по мере необходимости? Раньше я использовал базу данных SQLite в приложении, но приложение все еще было немного медленным. Есть ли что-то еще, что я могу сделать помимо этого, чтобы улучшить скорость приложения? Я все уши, любая помощь приветствуется. Заранее спасибо.Картинки в приложении для iPhone

ответ

0

Я не думаю, что вы получите быстрый ответ от SQLite, чем файловую систему. В любом случае он сохраняется в файле. Боюсь, это самое быстрое, что вы можете сделать. При этом вы можете быть уверены, что загрузите некоторые файлы и представления, прежде чем они понадобятся, если у вас достаточно памяти для этого. Вы можете сделать это асинхронно, пока выполняется другая часть приложения, используя метод NSObjectsSelectorInBackground. Кроме того, вы можете сократить время загрузки и обработки, предварительно оптимизировав ширину и высоту изображений для их целевого использования. Это имеет огромное значение как для загрузки, так и для представления, когда у вас много изображений.

1

Если ваши изображения никогда не меняются, есть некоторые преимущества, которые вы получите от [UIImage imageNamed:], который является кэшированием данных. В вашем случае загрузка ресурсов также должна быть быстрее, чем доступ к базе данных, поскольку вы напрямую обращаетесь к ресурсу, а не через уровень доступа к базе данных. Кэширование также дает вам преимущество в том, что вам не нужно самостоятельно управлять кэшированием данных, но вам может потребоваться освободить его от UIImageView, когда не видно, чтобы библиотека могла очищать кеш при необходимости.

0

Одна вещь, чтобы проверить, как долго она принимает запрос к базе данных?

Проверьте, сколько времени требуется от начала запроса, пока не будут возвращены результаты. Если это происходит медленно, убедитесь, что вы указали столбец, который вы используете, в инструкции «где».

Вы можете быстро проверить этот удивительный графический интерфейс SQLite http://menial.co.uk/software/base/ и добавить их.

Я бы получил данные из файловой системы.