我这里有这个方法:

func displayPDF(dataParam: NSData, PDFFileParam: String)

现在我试图通过NSTtimer调用此方法,如下所示:
NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: #selector(FileBrowser.displayPDF(_:PDFFileParam:)), userInfo: nil, repeats: false)

我有两个变量:
let PDFFile = self.data[indexPath.row]["Name"]!!.componentsSeparatedByString("\\").last
var data: NSData!

我想使用这些变量传递到带有selector的方法,如何执行此操作?

最佳答案

为此,您需要创建自定义的subclassNSTimer或其他方式是,您可以这样使用userInfoNSTimer的属性。
首先这样改变你的scheduledTimerWithTimeInterval

let dic:[String:AnyObject] = ["pdfName" : PDFFile, "pdfData" : data]
NSTimer.scheduledTimerWithTimeInterval(0.4, target: self, selector: #selector(FileBrowser.displayPDF(_:)), userInfo: dic as! AnyObject, repeats: false)

现在像这样改变你的计时器功能。
func displayPDF(timer:NSTimer) {
    if let userInfo = timer.userInfo as? [String: AnyObject] {
         print(userInfo["pdfName"])
    }
}

关于ios - 选择器中的Swift Pass参数,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39123950/

10-13 05:25