这是我在存在 SKScene 时看到的错误,此错误随机发生 并且无法复制 * 由于未捕获的异常“NSGenericException”而终止应用程序,原因:“* Collection 在枚举时发生了变异。”发生了什么?告诉我你是否需要任何其他信息谢谢 编辑:*** First throw call stack:( 0 CoreFoundation 0x025601e4 __exceptionPreprocess + 180 1 libobjc.A.dylib 0x022298e5 objc_exception_throw + 44 2 CoreFoundation 0x025efcf5 __NSFastEnumerationMutationHandler + 165 3 Foundation 0x01e47f03 -[NSConcreteMapTable countByEnumeratingWithState:objects:count:] + 66 4 CoreFoundation 0x0253d77f -[__NSFastEnumerationEnumerator nextObject] + 143 5 SpriteKit 0x01d009f2 +[SKTextureAtlas(Internal) findTextureNamed:] + 232 6 SpriteKit 0x01cf709c __26-[SKTexture loadImageData]_block_invoke + 1982 7 SpriteKit 0x01d34d09 _Z14SKSpinLockSyncPiU13block_pointerFvvE + 40 8 SpriteKit 0x01cf6898 -[SKTexture loadImageData] + 228 9 SpriteKit 0x01cf65d9 __51+[SKTexture preloadTextures:withCompletionHandler:]_block_invoke + 241 10 libdispatch.dylib 0x02b117b8 _dispatch_call_block_and_release + 15 11 libdispatch.dylib 0x02b264d0 _dispatch_client_callout + 14 12 libdispatch.dylib 0x02b14eb7 _dispatch_root_queue_drain + 291 13 libdispatch.dylib 0x02b15127 _dispatch_worker_thread2 + 39 14 libsystem_c.dylib 0x02de1e72 _pthread_wqthread + 441 15 libsystem_c.dylib 0x02dc9daa start_wqthread + 30)libc++abi.dylib: terminating with uncaught exception of type NSException 最佳答案 我有时会遇到同样的异常(exception)。它已经存在了一段时间,我一直试图查明它几个星期。我怀疑这可能是由于预加载纹理而发生的,无论是手动还是由 Sprite Kit 自动触发,同时其他一些代码导致纹理被加载或访问。我已经减少了我的 preloadTextures: 调用,但我仍然遇到问题,只是频率降低了。我曾尝试 performSelector:onMainThread: 每当我运行一个选择器来访问或加载图像(或可能只是在内部)从一个 completionBlock 或其他运行在不同线程上的代码中。在我将用户界面代码移动到主线程(它是从完成处理程序调用的)之后,我今天一整天都没有发生这种崩溃。我不能说 100% 确定这是否修复了它。希望这会有帮助。肯定有一些挑剔的事情发生,如果您执行 po 0x1459da60(在 lldb 的命令窗口中,使用异常提供的地址),您将看到正在修改的是 SKTextureAtlas 纹理列表。我希望这可以帮助您查明问题出在您这边的位置。关于ios - NSGenericException 原因集合 <NSConcreteMapTable : xxx>,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22480962/
10-12 13:47