如何解决此委托 - 控制器兼容性警告?

时间:2013-06-10 16:54:28

标签: iphone ios

我是编码的新手,我不完全理解下面的警告。我相信它与使用ReaderView委托和TableView控制器中的模态表示有关,但这是我的一个猜测。我尝试使用带有可重用单元的View控制器重建,但继续收到警告。以下是我的代码。任何有关如何解决此警告的问题和建议的见解将不胜感激?

编译说:

Warning: Assigning to 'id ReaderViewControllerDelegate' from incompatible type'PdfVPTableViewController *const_strong'

我的代码:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
{
    int row = [indexPath row];
    NSArray * path4 = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory,  NSUserDomainMask, YES);
    NSString * path5 = [path4 objectAtIndex:0];
    NSString *path6 = [path5 stringByAppendingPathComponent:_pdfList[row]];
    if([[NSFileManager defaultManager] fileExistsAtPath:path6]) {

        ReaderDocument *document = [ReaderDocument withDocumentFilePath:path6 password:nil];

        if (document != nil)
        {
            ReaderViewController *readerViewController = [[ReaderViewController alloc] initWithReaderDocument:document];
            readerViewController.delegate = self;

            readerViewController.modalTransitionStyle = UIModalTransitionStyleCrossDissolve;
            readerViewController.modalPresentationStyle = UIModalPresentationFullScreen;

            [self presentViewController:readerViewController animated:YES completion:nil];
        }
    } else {UIAlertView *message = [[UIAlertView alloc] initWithTitle:@"File Problem, Select Another Photo Page" message:nil delegate:nil cancelButtonTitle:@"OK" otherButtonTitles:nil];
        [message show];
    }
}

- (void)dismissReaderViewController:(ReaderViewController *)viewController {
    [self dismissViewControllerAnimated:YES completion:nil];
}

1 个答案:

答案 0 :(得分:0)

您的PdfVPTableViewController类似乎不符合ReaderViewControllerDelegate协议(很难从提供的代码中说)。编译器要求从应该分配给readerViewController.delegate的对象。尝试将委托放在标题中(或在类别块中的* .m文件中):

#import "ReaderViewController.h"
@interface PdfVPTableViewController : UITableViewController <ReaderViewControllerDelegate>
{
    //...
}
@end

如果你已经有了这个,那么也许你应该在问题中添加更多代码。 希望这会有所帮助。