我想呈現一個PDF頁面上有一些註釋(電子郵件),並且大多數時候這工作正常。CGContextDrawPDFPage崩潰沒有產生內存警告
但是,特別是這個PDF似乎每次都在第一頁調用CGContextDrawPDFPage時崩潰。我已添加
CGContextSetInterpolationQuality(context, kCGInterpolationHigh);
CGContextSetRenderingIntent(context, kCGRenderingIntentDefault);
作爲來自CGContextDrawPDFPage taking up large amounts of memory的推薦,但這似乎並沒有解決我的問題。
我通過分析器運行它以查看發生了什麼事情,並且它慢慢開始分配一堆內存,直到最終達到512MB的活動字節並死亡。
奇怪的是,當我使這個到圖像(在設備上顯示)背景下,似乎很好地工作,但是當我把它渲染到PDF上下文(帶有註釋的電子郵件),它打破。我試過的所有其他PDF都能在兩種情況下正常工作。
我希望有人編寫PDF閱讀器/註釋器可以測試這個,看看這個文檔是否適用於他們,如果是這樣,給我一些關於他們在做什麼來減少CGContextDrawPDFPage的內存分配的技巧。
另一個資源我看着是這個偉大SO Question.
編輯(在崩潰的更多信息):
gdb的行顯示的時間90%的大跌實際上並沒有顯示出來,但該應用程序消失,堆棧跟蹤不顯示。 (它說暫停但沒有線程顯示)。有一次,我看到這是一個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
什麼是實際的崩潰? – 2012-02-29 18:49:25
我已經添加了關於崩潰的編輯。 – 2012-02-29 20:05:53