Я разрабатываю галерею изображений, которая позволяет выбирать некоторые изображения с iPhone и отображать их.
Некоторые пояснения к этой галерее:
UITableView
отображает различные каталоги, содержащие изображения iPhone.- Когда пользователь нажимает на один из этих каталогов: Отображает
UICollectionView
с различными изображениями из выбранного каталога. - Кнопка «Назад», чтобы вернуться к
UITableView
- Кнопка «Далее» для отображения выбранных изображений на новой странице.
Как реализована эта галерея:
- Для каждого каталога, найденного на изображениях iPhone, сохраните
ALAssetsGroup
вNSMutableArray
именованном каталогеData. - Отобразите каталоги, хранящиеся в каталогахДанные в файле
UITableView
. - Когда пользователь выбирает один каталог: Сохраните каждый из
ALAsset
, содержащихся в этом каталоге, в файлеNSMutableArray
с именем imagesData. - Отображать миниатюры в
UICollectionView
из imagesData. - Когда пользователь выбирает изображение, оно сохраняется в единственном экземпляре
NSMutableArray
с именем requiredPictures. - Если пользователь нажимает кнопку «Назад», я удаляю все объекты из imagesData перед отображением файла
UITableView
.
Теперь проблема:
У меня есть два разных каталога изображений в моем iPhone.
Каталог А Каталог Б
Я хочу выбрать одно изображение в каталоге A и еще одно в каталоге B.
После их выбора я нажимаю на следующую страницу, чтобы отобразить их.
Новая страница загружает изображения из требуемых картинок. Но когда я хочу отобразить выбранные изображения, обратившись к ALAsset
каталога A, у меня есть EXC_BAD_ACCESS
.
После некоторых тестов и исследований в моем проекте я обнаружил, что если я не удаляю объекты из imagesData (когда я нажимаю кнопку назад), у меня больше нет EXC_BAD_ACCESS
.
Но мне нужно очистить содержимое pictureData, потому что, когда я заполняю свой UICollectionView
, он из imagesData. И в случае доступа к каталогу A, а затем к каталогу B, у меня будет содержимое двух каталогов в файле UICollectionView
.
Итак, как я могу сохранить правильный указатель ALAsset
и очистить данные изображения?
Надеюсь, вы понимаете мой проект и проблему.
Спасибо !
Редактировать:
Обратный след
* thread #29: tid = 0x599a6, 0x39764b26 libobjc.A.dylibobjc_msgSend + 6, queue = 'com.apple.root.high-priority, stop reason = EXC_BAD_ACCESS (code=1, address=0xc)
objc_msgSend + 6
frame #0: 0x39764b26 libobjc.A.dylib
frame #1: 0x00195f1a MyProject-[Picture getFullImage](self=0x176ebb40, _cmd=0x005de393) + 310 at Picture.m:211
-[Picture getCroppedImage](self=0x176ebb40, _cmd=0x005da2b4) + 68 at Picture 154
frame #2: 0x001959bc MyProject
кадр № 3: 0x001f9a82 MyProject__68-[ImageCropViewController sliderContentsAddContent:ToSlider:AtPage:]_block_invoke(.block_descriptor=0x17637000) + 50 at ImageCropViewController.m:1020
_dispatch_call_block_and_release + 10
frame #4: 0x39c4cd1a libdispatch.dylib
кадр № 5: 0x39c53d70 libdispatch.dylib_dispatch_root_queue_drain + 220
_dispatch_worker_thread2 + 56
frame #6: 0x39c53f58 libdispatch.dylib
кадр № 7: 0x39d8edbe libsystem_pthread.dylib`_pthread_29thread_wq8thread