gpt4 book ai didi

ios - CGContextDrawPDFPage 在没有产生内存警告的情况下崩溃

转载 作者:行者123 更新时间:2023-11-29 13:39:41 24 4
gpt4 key购买 nike

我正在尝试渲染一个带有一些注释的 PDF 页面(发送到电子邮件),大多数情况下它工作正常。

但是,有了这个 PDF特别是它似乎每次在第一页调用 CGContextDrawPDFPage 时都会崩溃。我已经添加了

CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
CGContextSetRenderingIntent(context, kCGRenderingIntentDefault);

来自 CGContextDrawPDFPage taking up large amounts of memory 的推荐但这似乎并没有解决我的问题。

我通过探查器运行它以查看发生了什么,它慢慢开始分配一堆内存,直到最后它达到 512MB 的事件字节并死掉。 memory allocation profiled in instrument

奇怪的是,当我将其呈现为图像(用于在设备上显示)上下文时,它似乎工作正常,但当我将其呈现为 PDF 上下文(用于通过电子邮件发送注释)时,它会中断。我尝试过的所有其他 PDF 在这两种情况下都可以正常工作。

我希望编写 PDF 查看器/注释器的人可以对此进行测试,看看该文档是否适合他们,如果适合,请给我一些提示,说明他们正在做什么以减少 CGContextDrawPDFPage 的内存分配。

我查看的另一个资源非常棒 SO Question.

编辑(关于崩溃的更多信息):

90% 的时间崩溃并没有真正出现,gdb 行显示但应用程序消失并且堆栈跟踪不显示。 (它说暂停但没有线程显示)。有一次我看到它是一个 exc_bad_access,它在日志中显示:

malloc: *** mmap(size=16777216) failed (error code=12)
*** error: can't allocate region
*** set a breakpoint in malloc_error_break to debug

最佳答案

您是在主线程上构建 PDF 吗?如果是这样,您可能不会收到内存警告,因为您在执行时阻塞了信号,因为运行循环永远没有机会向您发送消息。

关于ios - CGContextDrawPDFPage 在没有产生内存警告的情况下崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9503893/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com