ALAssetsGroup становится недействительным - PullRequest
4 голосов
/ 29 октября 2011

Я использую AssetsLibrary Framework для сохранения активов в определенный альбом (ALAssetsGroup).

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

При извлечении / создании альбома все отображается правильно (для valueForProperty:), но группа через некоторое время, кажется, делает себя недействительной, и все ее свойства возвращают nil. Кроме того, addAsset: не будет работать с ним, поэтому мне придется снова искать альбом (на этот раз он ищется по его URL, но он все еще асинхронный).

Есть ли способ обойти это (чтобы действительный ALAssetsGroup)?

Это происходит в iOS 5, и библиотека (ALAssetsLibrary) также сохраняется. Я использую сеттер, чтобы убедиться, что я сам не сбрасываю group.

1 Ответ

4 голосов
/ 29 октября 2011

Вам необходимо добавить наблюдателя для ALAssetsLibraryChangedNotification для вашей ALAssetsLibrary и при получении его повторно запросить любой из ваших кэшированных объектов AL *. Это будет опубликовано непосредственно перед тем, как отобранные объекты AL * станут недействительными.

...