乙個全域性的定時事件發生器

2021-07-31 02:15:08 字數 1278 閱讀 3739

新增、刪除定時事件

新增、刪除接收事件的物件

開始、停止事件發生器

設定事件發生器的靈敏度

利用nstimer作為事件的發生器

利用nsnotificationcenter作為事件的註冊和通知

[_timer addevent:evt_name1 interval:[nsnumber numberwithfloat:1.0]];

[_timer addevent:evt_name2 interval:[nsnumber numberwithfloat:5.0]];

[_timer addevent:evt_name3 interval:[nsnumber numberwithfloat:10.0]];

這裡新增了三個事件,分別間隔1秒、5秒、10秒發生一次。

2. 註冊需要監聽這些事件的物件

[iftimer addobserver:self

selector:@selector(updateevt1:) evtname:evt_name1];

[iftimer addobserver:self

selector:@selector(updateevt2:) evtname:evt_name2];

[iftimer addobserver:self

selector:@selector(updateevt3:) evtname:evt_name3];

每個事件名對應乙個響應的函式。

3. 啟動事件發生器

[_timer start];
4.處理事件響應函式

- (void)updateevt1:(nsnotification*)sender

];}

5.不需要再監聽事件時,可以移除事件監聽

[iftimer removeobserver:self evtname:evt_name1]

;[iftimer removeobserver:self evtname:evt_name2]

;[iftimer removeobserver:self evtname:evt_name3]

;

iftimer是100毫秒檢查一次定時事件是否已到,你可以通過下面的介面調整這個事件,可以加快或減慢檢查的頻率

- (void)setactiveinterval:(nstimeinterval)interval;

84 2 構造乙個隨機發生器

2.已知一隨機發生器,產生0的概率是p,產生1的概率是1 p,現在要你構造乙個發生器,使得它構造0和1的概率均為 1 2 構造乙個發生器,使得它構造1 2 3 的概率均為 1 3 構造乙個發生器,使得它構造 1 2 3 n 的概率均為1 n,要求複雜度最低。2.已知一隨機發生器,產生0的概率是p,產...

乙個完全平均分布的固定長度隨機數發生器

訂單需要乙個不重複且加密的的訂單號,而且訂單號不能太長!加密說白了就是不想讓任何人從訂單號中看出來今天產生了多少個訂單。訂單號要不重複且不太長,那就只能是日期 流水號。但是,流水號顯然不能符合加密的需求。所以,流水號就需要加密了。初始化乙個順序序列的map,然後隨機取出乙個數放到乙個棧裡面並刪除ma...

QT的定時器事件中遇見的乙個誤區

在mainwindow的建構函式裡新增以下 starttimer 1000 其返回值為1,即其timerid為1 starttimer 5000 其返回值為2,即其timerid為2 starttimer 10000 其返回值為3,即其timerid為3 新增了三個定時器,它們的timerid分別為...