У меня есть код, который упаковывает объект ALAsset, который извлекается из перечисления активов в ALAssetLibrary. Я получаю отчеты о пользователях, сталкивающихся со сбоями в той части объекта-оболочки, которая запрашивает у содержащегося в нем ALAsset метаданные.
Код, который дает сбой, находится в этом классе-оболочке, и он просто запрашивает метаданные своего ALAsset следующим образом:
[[myAlAsset defaultRepresentation] metadata];
Вот частичная трассировка стека, отражающая сбои, которые я вижу:
0
CoreFoundation CFDataGetBytePtr + 5
1
PhotoLibraryServices __46-[PLManagedAsset adjustmentsXMPRepresentation]_block_invoke + 228
2
PhotoLibraryServices __46-[PLManagedAsset adjustmentsXMPRepresentation]_block_invoke + 228
3
CoreData developerSubmittedBlockToNSManagedObjectContextPerform + 88
4
CoreData -[NSManagedObjectContext performBlockAndWait:] + 114
5
PhotoLibraryServices -[PLManagedAsset adjustmentsXMPRepresentation] + 226
6
AssetsLibrary __33-[ALAssetRepresentation metadata]_block_invoke + 24
7
AssetsLibrary __53-[ALAssetRepresentationPrivate _performBlockAndWait:]_block_invoke + 68
8
CoreData developerSubmittedBlockToNSManagedObjectContextPerform + 88
9
libdispatch.dylib _dispatch_client_callout + 22
10
libdispatch.dylib _dispatch_barrier_sync_f_invoke + 26
11
CoreData -[NSManagedObjectContext performBlockAndWait:] + 106
12
AssetsLibrary -[ALAssetsLibrary _performBlockAndWait:] + 134
13
AssetsLibrary -[ALAssetRepresentationPrivate _performBlockAndWait:] + 176
14
AssetsLibrary -[ALAssetRepresentation metadata] + 464
У кого-нибудь есть идеи о том, что может происходить? Библиотека AlAssetLibrary, лежащая в основе этих активов, сохраняется со статической ссылкой, поэтому она не должна очищаться в памяти, и поэтому я не ожидаю, что ALAsset станет недействительным. Эта проблема, похоже, началась именно с выпуском iOS 7.
Сам сбой EXC_BAD_ACCESS с KERN_INVALID_ADDRESS в 0x0.
CFDataGetBytePtr
в верхней части стека, я чувствую, что это может быть связано с памятью. Вы нашли причину/решение для этого? - person John Estropia   schedule 27.01.2014ALAssetsGroupSavedPhotos
иALAssetsGroupAlbum
, поэтому мы можем исключить поток фотографий и другие специальные папки. - person John Estropia   schedule 13.03.2014