我需要将CGPDFPageRef var转换为整数,我创建一个if语句,该语句检查PDF页面是否小于或大于文件未显示的页面。

- (id) setUpPDF: (int) pageNumber {

//** = I need some integer that automatically detects PDF pages
    if ((pageNumber < **) || (pageNumber > **)) return nil;


 CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(),


                                              CFSTR("test"),
                                              CFSTR("pdf"), NULL);


    myDocumentRef = CGPDFDocumentCreateWithURL(pdfURL);
    myPageRef = CGPDFDocumentGetPage(myDocumentRef, pageNumber);

最佳答案

您可以使用CGPDFDocumentGetNumberOfPages(myDocumentRef)获取总页数。

CGPDFDocumentGetNumberOfPages()返回size_t,它是无符号整数。您可以直接将其与整数类型进行比较。

因此,对于上面的代码段,我假设您需要类似以下内容的代码:

CFURLRef pdfURL = CFBundleCopyResourceURL(CFBundleGetMainBundle(), CFSTR("test"), CFSTR("pdf"), NULL);
myDocumentRef = CGPDFDocumentCreateWithURL(pdfURL);
// take note that pdf page numbering starts at 1
if ((pageNumber < 1) || (pageNumber > CGPDFDocumentGetNumberOfPages(myDocumentRef))) return nil;


我建议您将参数从(int)pageNumber更改为(size_t)pageNumber

10-08 05:53