正在为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。

这可能是由于缓冲区溢出造成的。 请检查显示缓冲区溢出崩溃报告相同的苹果网站的链接,因为你有。 希望这可以帮助你。

https://developer.apple.com/library/ios/documentation/Security/Conceptual/SecureCodingGuide/Articles/BufferOverflows.html#//apple_ref/doc/uid/TP40002577-SW1

    Interesting Posts