使用 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]);
}