使用 Timer 传递数据

如果你想使用计时器触发器传递一些数据,可以使用 userInfo 参数执行此操作。

这是一个简单的方法,简要介绍了如何将数据传递给 Timer 中的触发方法。

[ Swift 3 ]

Timer.scheduledTimer(timeInterval: 1.0, target: self, selector:#selector(iGotCall(sender:)), userInfo: ["Name": "i am iOS guy"], repeats:true)

[ 目的 - C ]

NSTimer* timer = [NSTimer scheduledTimerWithTimeInterval:1.0
                                                      target:self
                                                    selector:@selector(iGotCall:)
                                                    userInfo:@"i am iOS guy" repeats:YES];

上面的代码行将 ["Name": "i am iOS guy"] 传递给 userInfo。所以现在当 iGotCall 调用时,你可以获得传递的值,如下面的代码片段所示。

[ Swift 3 ]

func iGotCall(sender: Timer) {
        print((sender.userInfo)!)
    }

[ 目的 - C ]

- (void)iGotCall:(NSTimer*)theTimer {
    NSLog (@"%@", (NSString*)[theTimer userInfo]);
}