Objective-C委托不兼容的类型

时间:2013-02-12 14:34:01

标签: objective-c xcode pdf

我正在使用http://www.vfr.org/,pdf查看器,我尝试添加一个按钮以在IBOOK中打开PDF。

我添加了按钮和操作,但是当我想要使用这个pdf打开ibooks应用程序时,我就停下来了。

我尝试了两种解决方案:

  1. 按钮点击操作:

    NSURL *fileURL = document.fileURL;
    NSString *fileName = document.fileName; // Document
    [[UIApplication sharedApplication] openURL:fileURL];
    
  2. 它会打开IBOOKS,但PDF永远不会被加载。

    我假设URL格式可能是错误的我甚至尝试过硬编码PDF URL,如:

    NSString *stringURL = @"itms-books://linktopdf.pdf";     
    NSURL *url = [NSURL URLWithString:stringURL];
    [[UIApplication sharedApplication] openURL:url];
    

    但结果相同。

    2)按钮敲击动作:

        NSURL *fileURL = document.fileURL;
        NSString *fileName = document.fileName; // Document
        UIDocumentInteractionController *docController = [[UIDocumentInteractionController alloc] init];
        docController = [UIDocumentInteractionController interactionControllerWithURL:fileURL];
        docController.delegate = self;
    

    但我有一个警告,我尝试委托:docController.delegate = self;

    assigning to id UIDocumentInteractionControllerDelegate from Incompatible ReaderViewController

    有人可以帮助我使其至少有一个解决方案。

2 个答案:

答案 0 :(得分:1)

头文件中有 ReaderViewController 这种行:@interface ReaderViewController : NSObject < UIDocumentInteractionControllerDelegate >

答案 1 :(得分:0)

您的课程必须符合UIDocumentInteractionControllerDelegate协议,因此在您的 .h文件中使其显示为

@interface ReaderViewController : PerantClass <UIDocumentInteractionControllerDelegate>
{

...

}

然后编译器将知道您的类符合该协议。当然,您仍然需要实现所需的方法。

另请检查此Link - 1Link - 2.