ios - 集合 <__NSArrayM : 0x170e45d00> was mutated while being enumerated - UIImagePickerConteroller didFinishPickingMediaWithInfo

标签 ios objective-c nsarray uiimagepickercontroller

我有一个使用 UIImagePickerConteroller 拍照的 native Objective-C 应用程序。一旦 UIImagePickerController didFinishPickingMedia 委托(delegate)函数返回图像,我就会将图像存储在我的应用程序文档目录中,并将图像位置存储在一个数组中,以便我可以在我的应用程序库 View 中显示它。

不经常,但在一个月内有一两次,在用户完成拍照后,我在 AppSee/Fabric 崩溃跟踪器中收到崩溃日志。

enter image description here

在 Appsee 视频中,我可以看到崩溃发生的确切位置。崩溃日志说 NSArray 在枚举时发生了突变(检查附件图像)。现在我在枚举时没有对我的照片 mutableArray 执行任何 addObject 或 removeObject 功能。在读取数据以显示我的照片库之前,我正在做我的照片阵列的可变副本。因此在枚举时没有突变的机会。

根据崩溃日志,问题似乎与 UIImagePickerController 有关。因为日志说 -

-[CAMPriorityNotificationCenter _postNotification:forEntries:]

-[CAMPriorityNotificationCenter _notificationReceiver:]

'CAMPriorityNotification' 由 UIImagePickerController 类使用。但不确定 UIImagePickerController 是否抛出错误并导致崩溃。我将 @try @catch 放在 didFinishPickingMedia 函数中以查找崩溃问题。但是@try @catch 并没有抛出错误。所以这让我更加困惑。

有没有人在拍照后遇到类似的崩溃问题?如有任何建议,我将不胜感激。

最佳答案

这是苹果的问题。 Apple 回应了我的错误报告。这是他们的回应 -

“工程已确定您的错误报告 (31369562) 与另一个问题 (29753773) 重复,将被关闭。 您的问题被复制到的原始错误报告的打开或关闭状态显示在错误报告器用户界面的黄色“XXXXXXXX 的副本”部分。此部分显示在错误编号、标题、状态、产品和等级下方右列错误详细信息 View 的顶部附近。”

关于ios - 集合 <__NSArrayM : 0x170e45d00> was mutated while being enumerated - UIImagePickerConteroller didFinishPickingMediaWithInfo,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43103321/

相关文章:

objective-c - ios字典数组

ios - 我在哪里可以找到关于 NSDictionary 的完整文档?

ios - 如何将相机(UIImagePickerControllerSourceTypeCamera)拍摄的图像转换为iOS中的NSData

iphone - 在 iOS 中向用户公开 .sqlite 文件 - 最佳实践?

objective-c - NSEventTrackingRunLoopMode - 这总是运行?

iphone - 将 NSArray 转换为 NSDictionary

ios - 射弹并非来自正确的位置

ios - 警告: Implicit declaration of function 'min' is invalid in C99

objective-c - 协议(protocol)中可选方法的意义何在?

ios - 为什么我的 NSMutableArray 在某些索引上包含 nil?