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