swift定时器
import Foundation
//定义消息泵
class OCMessagePump: NSObject {
var timer:NSTimer?
var count = 0
func start()
{
//初始化
timer = NSTimer.scheduledTimerWithTimeInterval(10, target: self, selector: "timerFireMethod", userInfo: nil, repeats: true)
timer?.fire()
}
func stop()
{
timer!.invalidate()
}
func timerFireMethod()
{
print("接受消息定时派发命令,处理控件消息: OCButtonClicked 消息")
//向通知中心推送消息,注意这里是异步的,且消息标示是:MessageReceiver
NSNotificationCenter.defaultCenter().postNotificationName("OCButtonClicked", object: nil)
//派发十条停止定时器
if count++ > 10
{
self.stop()
}
}
}
class OCButton: OCMessagePump {
override init()
{
super.init()
//向通知中心注册自己的消息处理函数
NSNotificationCenter.defaultCenter().addObserver(self, selector: "ButtonClicked:", name: "OCButtonClicked", object: nil)
}
func ButtonClicked(notify:NSNotification)
{
print("收到消息泵通知,当前按钮被单机")
}
}
//初始化消息接受者
var button = OCButton()
//初始化消息泵
var ocMessagePump = OCMessagePump()
//启动消息泵
ocMessagePump.start()
//延时当前主循环
while (true)
{
var date = NSDate()
NSRunLoop.currentRunLoop().runUntilDate(date.dateByAddingTimeInterval(100))
break
}
会输出十次
接受消息定时派发命令,处理控件消息: OCButtonClicked 消息
收到消息泵通知,当前按钮被单机
在学习的书上的例子,记录下,说不定之后有用,看不懂英文太伤了