Как просто хранить некоторые файлы - PullRequest
0 голосов
/ 01 июля 2011

Я разрабатываю приложение, которое должно показывать несколько логотипов. Эти логотипы представляют собой файлы PNG размером 8 КБ, и я собираюсь обработать их немного (не более 10-20). Однако они загружаются из Интернета, потому что они могут измениться. Итак, я пытаюсь добиться того, чтобы приложение загружало их (готово), сохраняло их в файловую систему и загружало снова только тогда, когда они меняются (могут быть месяцы).

Кажется, что все используют Core Data, который, на мой взгляд, предназначен для больших и более сложных вещей, потому что мои файлы всегда будут иметь одно и то же имя и не иметь отношений между ними.

Файловая система - путь? Любой хороший учебник?

Ответы [ 2 ]

1 голос
/ 03 июля 2011

Да, файловая система, вероятно, является лучшим вариантом для этого. Вы говорите, что уже осуществили загрузку. Как ты это сделал? С NSURLConnection? Если так, то в какой-то момент у вас есть объект NSData. У этого есть пара write ... методов, которые вы можете использовать для сохранения данных в файл в файловой системе. Обязательно сохраните файлы в нужном месте , так как ваше приложение находится в изолированной программной среде, и вы не можете писать где угодно.

0 голосов
/ 03 июля 2011

Преимущество Core Data заключается в эффективности. Использование NSFetchedResultsController для отображения ваших логотипов в виде таблицы позволяет оптимизировать загрузку объектов и управление памятью. Он будет автоматически загружать только элементы, которые могут быть отображены на одном экране, и, когда пользователь пролистывает таблицу, он будет обрабатывать освобождение элементов, которые перемещаются за пределы экрана. Осуществить это самостоятельно - непростая задача.

Если вы хотите создавать и отображать свои данные без Core Data, вам, вероятно, следует использовать NSKeyValueCoder, который позволит вам легко писать массив или словарь объектов (включая вложенные массивы, словари и изображения).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...