正在为ALAssetRepresentation元数据方法报告崩溃
我有一些代码封装了一个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,0xERN处的KERN_INVALID_ADDRESS。
这可能是由于缓冲区溢出造成的。 请检查显示缓冲区溢出崩溃报告相同的苹果网站的链接,因为你有。 希望这可以帮助你。