从 swift 代码遵守 Objective 中定义的协议时出错

Error in conforming to a protocol defined in Objective from swift code

我有以下 header ReaderViewController.h

#import <UIKit/UIKit.h>

#import "ReaderDocument.h"

@class ReaderViewController;

@protocol ReaderViewControllerDelegate <NSObject>

@optional // Delegate protocols

- (void)dismissReaderViewController:(ReaderViewController *)viewController;

@end

@interface ReaderViewController : UIViewController

@property (nonatomic, weak, readwrite) id <ReaderViewControllerDelegate> delegate;

- (instancetype)initWithReaderDocument:(ReaderDocument *)object;

@end

在 swift 文件中

  class DetailTableViewController: UITableViewController, UITableViewDelegate, UITableViewDataSource {


override func tableView(tableView: UITableView, didSelectRowAtIndexPath indexPath: NSIndexPath) {
    // Get the row data for the selected row
    var phrase: String = "" ;

    var document:ReaderDocument? = ReaderDocument(filePath: "/Users/Krishna/Development/XXXX/Reader.pdf", password: phrase);
    if(document != nil){
        var readerViewController:ReaderViewController  = ReaderViewController(readerDocument: document)
        readerViewController.delegate = self ;
        readerViewController.modalTransitionStyle = .CrossDissolve;
        readerViewController.modalPresentationStyle = .FullScreen;
        self.presentViewController(readerViewController, animated: true, completion: nil)
    }

func dismissReaderViewController(viewController: ReaderViewController) {

    self.dismissViewControllerAnimated(true, completion: nil)

}


}

对于行 readerViewController.delegate = self ; Xcode 抛出

的编译时异常

类型 'DetailTableViewController' 不符合协议 'ReaderViewControllerDelegate'。 我尝试为其他类似帖子寻找解决方案,但无法找出问题所在。 感谢任何帮助,因为我是 iOS 平台的新开发人员!

只需将 ReaderViewControllerDelegate 添加到 DetailTableViewController 的第一行,因为这会告诉编译器,此 class 符合特定的委托协议。

class DetailTableViewController: UITableViewController, UITableViewDelegate, UITableViewDataSource, ReaderViewControllerDelegate