我这里有这个方法:
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
的方法,如何执行此操作? 最佳答案
为此,您需要创建自定义的subclass
的NSTimer
或其他方式是,您可以这样使用userInfo
,NSTimer
的属性。
首先这样改变你的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/