NSTimer选择器中的多个参数

重量

我想通过将参数传递给以下函数userInfo,因为该函数必须在延迟后执行。

func showAlert(alertTitle: String, withMessage alertMessage: String, fromController controller: UIViewController) {
     //do stuff...
}

已经延迟完成了该部分,但是我不知道如何将多个参数发送到主体 showAlert.

func fireTimer() {
   timer = NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: Selector("showAlert:"), userInfo: nil, repeats: false)
}

非常感谢您的协助。


我仍然遇到错误,不知道为什么。

无法识别的选择器已发送到实例

这就是我的代码的样子。怎么了?

class AlertController: UIAlertController {  
var timer = NSTimer()

func showAlert(alertTitle: String, withMessage alertMessage: String, fromController controller: UIViewController)
{
    var alert = UIAlertController(title: alertTitle, message: alertMessage, preferredStyle: .Alert)
    controller.presentViewController(alert, animated: true, completion: nil)
}

func showAlert2(dict: [String: AnyObject])
{
    showAlert(dict["title"] as! String,
        withMessage: dict["message"] as! String,
        fromController: dict["controller"] as! UIViewController)
}

func fireTimer(title: String, message: String, viewController: UIViewController)
{
    timer = NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: Selector("showAlert2:"), userInfo: ["title":title, "message": message, "controller": viewController], repeats: false)
}
仲裁人

您不能使用NSTimer传递多个参数,但是,可以将该参数放入数组或字典或类似数组。

然后创建一个采用该数组/字典的新函数,然后使用数组/字典中的每个参数调用函数

func fireTimer() {
    timer = NSTimer.scheduledTimerWithTimeInterval(4, target: self, selector: Selector("showAlert2:"), userInfo: ["title":"a title", "message": "a message", "controller": controller], repeats: false)
}

func showAlert2(timer: NSTimer) {   
    let dict = timer.userInfo as NSDictionary

    showAlert(dict["title"] as String, wwithMessage: dict["message"] as String, fromController: dict["controller"] as UIViewController)
}

func showAlert(alertTitle: String, withMessage alertMessage: String, fromController controller: UIViewController) {
//    do stuff...
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

调用中的额外参数“选择器”-NSTimer ScheduledTimerWithTimeInterval

来自分类Dev

调用中的额外参数“选择器”-NSTimer ScheduledTimerWithTimeInterval

来自分类Dev

NSTimer选择器中的方法无效

来自分类Dev

NSTimer可以使用多个选择器吗?

来自分类Dev

NSTimer不要在选择器中调用方法

来自分类Dev

在scheduleTimerwithTimeInterval的选择器中传递参数

来自分类Dev

选择器中的Swift Pass参数

来自分类Dev

NSTimer找不到选择器

来自分类Dev

无法从NSTimer的选择器触发功能

来自分类Dev

NSTimer选择器不触发

来自分类Dev

如何在swift3中的执行选择器中发送多个参数?

来自分类Dev

如何使用选择器方法传递多个参数

来自分类Dev

在JavaScript中的多个选择器中获取h4选择器的值

来自分类Dev

SCSS多个选择器

来自分类Dev

串联多个选择器

来自分类Dev

.removeAttr的多个选择器

来自分类Dev

调用错误中的额外参数“选择器”

来自分类Dev

Sass选择器作为Mixin中的参数

来自分类Dev

如何在 NGXS 中创建参数化选择器?

来自分类Dev

iOS NSTimer不调用选择器-不触发

来自分类Dev

NSTimer选择器即使在后台也不断被调用

来自分类Dev

iOS NSTimer不调用选择器-不触发

来自分类Dev

NSTimer不会调用他的选择器

来自分类Dev

NSTimer火特定代码,而不是选择器

来自分类Dev

NSTimer选择器即使在后台也不断被调用

来自分类Dev

NSTimer从不调用选择器函数(Swift)

来自分类Dev

仅在JS中定位多个选择器

来自分类Dev

Less中具有变量的多个嵌套选择器

来自分类Dev

jQuery打印功能中的多个选择器