Objective-C / Какао: загрузка изображений, рабочая память и хранение - PullRequest
0 голосов
/ 12 февраля 2010

Я в процессе переноса приложения изначально в java на какао, но я переписываю его, чтобы сделать его намного лучше, так как я все равно предпочитаю какао.

Одна из проблем, с которыми я столкнулся в приложении, заключалась в том, что когда вы загружали в него изображения, у меня были созданы изображения (как, скажем, объект NSImage), а затем я просто держал их в памяти, чем больше я загружал больше памяти они заняли, и у меня кончилась память.

У меня такой вопрос: если я собираюсь, чтобы пользователи загружали изображения в это приложение в какао, как мне их хранить? Я не просто хочу копировать пути к файлам, потому что я хочу, чтобы сохраненные изображения содержали изображения и т. Д. Есть ли способ загрузить изображение и скопировать его в другое место только для моего приложения? Затем загрузите это изображение с новым именем пути по мере необходимости?

Только я бы хотел, чтобы все было консолидировано. Я собираюсь реализовать сохранение путем архивирования одного «главного» объекта в NSData * - поэтому я бы хотел, чтобы изображения сохранялись вместе с ним.

Может быть, есть временное местоположение, где я мог бы записать изображения на диск для своего приложения, а затем, когда я сохраню их, все они будут заархивированы в один файл? Кроме того, как мне это сделать? Спасибо.

1 Ответ

2 голосов
/ 12 февраля 2010

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

Если вы хотите сохранить изображения вместе с документом, вам следует изучить вопрос об использовании формата пакета для вашего документа, чтобы документ фактически представлял собой папку, содержащую ваши изображения и файл архивных данных. Вы можете создать оболочку для файлов, содержащую все файлы для вашего комплекта документов, используя различные методы NSFileWrapper, а затем реализовать метод -fileWrapperOfType:error: NSDocument для обработки сохранения.

Это позволит вам сохранить изображения без изменений, а затем при необходимости лениво загрузить их из пакета документов.

...