2015-11-23 75 views
0

附註:如果標題有誤導性,我想表示歉意。找不到這個問題的更好的標題。Swift:無法訪問聲明庫中的方法

我將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?類型,我加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調用來檢查)。

我很茫然。

謝謝你提供的任何幫助!

如果您需要任何額外的代碼,請告訴我。

回答

0

所以經過更多的擺弄之後,我想清楚了。解決方案很簡單:將代碼更新爲最新的Swift 2.0語法。

我冒昧地分發了存儲庫並自己修復了它。我提出了一個拉取請求,但如果您想在將它合併到官方主分支之前獲得它的副本,請抓住它here