附带说明:如果标题误导我,我深表歉意。找不到这个问题的更好标题。
我将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
调用进行检查)。我很茫然。
感谢您提供的任何帮助!
如果您需要任何其他代码,请告诉我。
最佳答案
所以在摆弄了一些之后,我想出了办法。解决方案很简单:将代码更新为最新的Swift 2.0
语法。
我选择了分叉存储库并自行修复。我提出了拉取请求,但是如果您想在将其合并到正式master分支之前获取它的副本,请抓住它here。
关于ios - Swift:无法从已声明的库访问方法,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/33864220/