我有一些代码可以包装从枚举ALAssetLibrary中的资源中检索到的ALAsset对象。我收到用户遇到崩溃的报告,包装器对象的一部分要求它包含元数据的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。
答案 0 :(得分:-1)
这可能是由于缓冲区溢出造成的。请检查Apple网站的链接,该链接显示与您相同的缓冲区溢出崩溃报告。希望这可以帮到你。