仅在64位iOS设备上获取错误的PDF页面

我有一个只有64个设备有问题的iOS应用程序。 问题所在的function在这里:

- (NSMutableData *)getPage:(NSInteger)pageNumber { NSLog(@"%ld",(long)pageNumber); CGPDFDocumentRef SourcePDFDocument = CGPDFDocumentCreateWithURL((CFURLRef)[NSURL fileURLWithPath:[[NSBundle mainBundle] pathForResource:@"full" ofType:@"pdf"]]); // Create the CGPDFDocument from the URL if (SourcePDFDocument == NULL) { return nil; } // Reference to Page current Page CGPDFPageRef SourcePDFPage = CGPDFDocumentGetPage(SourcePDFDocument, pageNumber); CGRect mediaBox = CGPDFPageGetBoxRect(SourcePDFPage, kCGPDFMediaBox); NSMutableData *outputData = [NSMutableData data]; CGDataConsumerRef consumer = CGDataConsumerCreateWithCFData((__bridge CFMutableDataRef)outputData); CGContextRef context = CGPDFContextCreate(consumer, &mediaBox, NULL); // draw CGContextBeginPage(context, &mediaBox); CGContextDrawPDFPage(context, SourcePDFPage); CGContextEndPage(context); // cleanup CGDataConsumerRelease(consumer); CGContextRelease(context); return outputData; } 

它所做的是从一个较大的pdf中抓取一个单页,并将其转换为NSMutableData,以便通过电子邮件发送。 它在64位设备上遇到的问题是它抓取了错误的页面(18页之前)。 任何人都可以看到问题?

将明确的转换添加到size_t – 如果将其保留为隐式,则32和64位之间有区别

 // Reference to Page current Page CGPDFPageRef SourcePDFPage = CGPDFDocumentGetPage(SourcePDFDocument, (size_t)pageNumber);