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 消息
收到消息泵通知,当前按钮被单机

在学习的书上的例子,记录下,说不定之后有用,看不懂英文太伤了

标签: swift

添加新评论