2011-03-27 1 views
0

У меня вопрос об использовании AssetLibrary с iOS. Можно ли сохранить указатель на изображение в приложении, а не на изображение? Предположим, я хочу создать плейлист, но я не хочу сохранять фактическое изображение.iOS AssetLibrary Storing Pointer

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

Вот где я сейчас. Мне любопытно, может ли AssetLibrary быть вариантом, поскольку я не буду хранить физические изображения. Я знаю, что у него есть некоторые недостатки (требуется местоположение пользователей, может быть немного медленным при прохождении через изображения)

Любые мысли об этом были бы весьма благодарны.

ответ

2

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

Вы не можете постоянно хранить указатель на активы библиотеки активов, но вы можете сохранить URL вы извлекать из url имущества ALAssetRepresentation, а затем использовать ALAssetsLibrary-х assetForURL:resultBlock:failureBlock: вернуть соответствующий ALAsset позже. Обратите внимание, что пользователь может удалять актив из-за пределов вашей программы, даже если ваше приложение находится в фоновом режиме, поэтому, если вы подключаетесь к ALAsset, вы должны прослушать ALAssetsLibraryChangedNotification, чтобы знать, когда перезагружать активы.

+0

Да, я проверил и проверил, после добавления я ничего не держу. Может быть, мне нужно лучше изучить инструменты :-). Я предположил, что пользователь может удалить извне. Прямо сейчас я взвешиваю свои варианты. благодаря – jabroni