我在 iPad 上遇到了很多奇怪的 EXC_BAD_ACCESS 崩溃,这些崩溃只发生在设备上,而不是在模拟器中。我假设它们在某种程度上与记忆有关,但我不确定。它们都发生在与图像上下文相关的功能中。
一个奇怪的例子是使用 CGImageCreateWithImageInRect。例如,如果我运行一堆 UIImage 并使用 CGImageCreateWithImageInRect 裁剪它们,它总是会在特定的任意大小时崩溃。就像,如果我将它们全部裁剪为 200x200,它会在处理 12 张图像后崩溃。如果我将它们裁剪为 210x210,它就没有问题。
EXC_BAD_ACCESS 发生在从“CGBlt_copyBytes”调用的“memmove”内部。这就是调试器向我展示的所有奇怪的东西。我看不到调用堆栈上升到我的任何方法。
所有这些在模拟器中都可以正常工作!
我知道这一切都非常模糊,但如果有人有任何想法,他们将不胜感激。