Я борюсь с методом экспорта pdf, который работает очень хорошо, пока я не портировал приложение в архитектуру arm64.UIGraphicsBeginPDFPage() случайно сбой на 64-битных устройствах (CGPDFSecurityManagerCreateDecryptor())
Bacisally, метод открывает существующий PDF-файл, он создает новый pdf-файл и рисует содержимое первого pdf-файла во вновь созданный, прежде чем добавлять дополнительные страницы контента.
Когда метод пытается создать новую PDF-страницу для документа (после того, как первый PDF был интегрирован в новый pdf), приложение вылетает с предупреждением EXC_BAD_ACCESS в UIGraphicsBeginPDFPage(); вызов .
Это происходит только с некоторыми файлами PDF, не все и только на 64-разрядных устройствах.
Вот стек, который показывает вызов CGPDFSecurityManagerCreateDecryptor(), который я не мог найти, что он делает.
Thread 14Queue : NSOperationQueue 0x14f6dd3a0 :: NSOperation 0x17504a470 (serial)
#0 0x00000001838aeee4 in CGPDFSecurityManagerCreateDecryptor()
#1 0x00000001838d1004 in pdf_filter_chain_create()
#2 0x0000000183831e00 in CGPDFStreamCreateFilterChain()
#3 0x000000018383226c in chain_get_bytes()
#4 0x0000000183b5e0ac in unpackImageRow()
#5 0x0000000183b5dfd4 in PDFImageEmitData()
#6 0x0000000183b5f684 in emit_image()
#7 0x0000000183b5ef9c in PDFImageEmitDefinition()
#8 0x0000000183464584 in __CFSetApplyFunction_block_invoke()
#9 0x00000001834643bc in CFBasicHashApply()
#10 0x00000001834642e4 in CFSetApplyFunction()
#11 0x0000000183b5fa9c in PDFImageSetEmitDefinitions()
#12 0x0000000183b590c0 in emit_page_resources(PDFDocument*)()
#13 0x0000000183b5904c in PDFDocumentEndPage()
#14 0x0000000183b57cf0 in pdf_EndPage()
#15 0x0000000187fda904 in UIGraphicsBeginPDFPageWithInfo()
#16 0x00000001002093e8 in -[ExportTools renderPdfContentToContext:forPlanVersion:]
#17 0x00000001001fba60 in -[ExportTools generatePdfReportWithOptions:]
#18 0x00000001000f7eb4 in -[DetailViewController generatePdfAndShowModalOpenWithAppWithOptions:]
#19 0x00000001835883c0 in __invoking___()
#20 0x0000000183486138 in -[NSInvocation invoke]()
#21 0x000000018443ba20 in -[NSInvocationOperation main]()
#22 0x000000018437c61c in -[__NSOperationInternal _start:]()
#23 0x000000018443e26c in __NSOQSchedule_f()
#24 0x000000010105cdf0 in _dispatch_client_callout()
#25 0x0000000101067854 in _dispatch_queue_drain()
#26 0x0000000101060120 in _dispatch_queue_invoke()
#27 0x000000010106975c in _dispatch_root_queue_drain()
#28 0x000000010106af18 in _dispatch_worker_thread3()
#29 0x00000001945012e4 in _pthread_wqthread()
Если у вас есть какие-либо идеи об этом крушении, ваша помощь будет принята с благодарностью, был один день, пытаясь все, чтобы исправить это и beggening удивляться, если это не UIKit ошибка ...
Благодарности
Я вижу тот же самый крах в той же функции, но с другой трассировкой стека. Хотя я не писал соответствующее программное обеспечение, я могу проверить, что он тоже работает с документами PDF и работает на OS X 10.10, поэтому его 64-битный – HairOfTheDog