Swift: 无法访问已声明库中的方法

Swift: Cannot access methods from declared library

上一个side-note:如果标题误导,我想道歉。找不到更好的标题来回答这个问题。

我将 NDHTMLtoPDF 库导入到我的 Xcode 应用程序中。

在库的演示中,他们是这样使用库的:

class NDViewController :UIViewController, NDHTMLtoPDFDelegate
{
    var PDFCreator:NDHTMLtoPDF?
[...]
    @IBAction func generatePDFUsingDelegate( sender:AnyObject ){
        self.resultLabel?.text = "loading..."
        let tt:NSString = ("~/Documents/delegateDemo.pdf" as NSString).stringByExpandingTildeInPath
        self.PDFCreator = NDHTMLtoPDF.createPDFWithURL(NSURL(string:"http://edition.cnn.com/2012/11/12/business/china-consumer-economy/index.html?hpt=hp_c1")!, pathForPDF:tt, delegate: self, pageSize: CGSizeMake(595.2,841.8), margins:UIEdgeInsetsMake(10, 5, 10, 5)) as? NDHTMLtoPDF;
    }
}

在我的应用程序中,我做了同样的事情:我将 PDFCreator 变量声明为 NDHTMLtoPDF? 类型,我在 class 声明处添加了 NDHTMLtoPDFDelegate使用库实例,我在我的方法中写了以下代码:

let tt:NSString = ("~/Documents/delegateDemo.pdf" as NSString).stringByExpandingTildeInPath
self.PDFCreator = NDHTMLtoPDF!.createPDFWithHTML("Hello", pathForPDF: tt, pageSize: CGSizeMake(595.2,841.8), margins:UIEdgeInsetsMake(36, 36, 36, 36))

每次我输入 self.PDFCreator = NDHTMLtoPDF!.,我只会得到以下方法的自动完成:

createPDFWithHTML(self:NDHTMLToPDF) createPDFWithURL(self:NDHTMLToPDF)

如果我输入 self.PDFCreator = NDHTMLtoPDF.,Xcode 会抱怨这是一个 ambiguous reference to member <insert_member_here>

但是,如果我这样做 self.PDFCreator.,我会突然得到 createPDFWithURL( URL:NSURL ,pathForPDF PDFpath:NSString ,delegate:AnyObject ,pageSize:CGSize ,margins pageMargins:UIEdgeInsets ) 作为自动完成选项。我试图只用 运行 我的代码,但事实证明该方法从未被调用(我通过在方法中添加 print 调用来检查)。

我真的很茫然

感谢您提供的任何帮助!

如果您需要任何额外的代码,请告诉我。

所以在进一步摆弄之后,我想通了。解决方案很简单:将代码更新为最新的 Swift 2.0 语法。

我冒昧地分叉了存储库并自己修复了它。我提出了一个 pull request,但是如果你想在他们将它合并到官方 master 分支之前得到它的副本,去获取它 here.