iOS -- GCD之延遲與定時器
我們開發常用的定時器有三種:NSTimer,CADisplyLink,CGD
本文詳細說一下CGD的延遲與定時器方法。文章最後,也會說說GCD與前兩個的區別。
直接上程式碼,首先是延遲的程式碼:
其中的delayInSeconds就是延遲的時間,執行之後,輸出臺會在2s之後,列印11111111.
延遲的程式碼還算固定,但是GCD的定時器,新手上手會有一坑。我先上程式碼:
我最開始,按照網上說的程式碼,是沒有將dispatch_source_t定義成屬性,導致了我的handler程式碼塊裡的程式碼沒有執行,因為timer物件被提前釋放了,所以要給timer物件持有住,就沒問題了。
我上一下最後輸出臺的程式碼
到這裡就完成了。最後我說一下GCD與NSTimer,CADisplayLink的區別:
1.GCD是獨立於RunLoop的,也就是不用管子執行緒的RunLoop,而NSTimer就要去做管理。
2.GCD可以將時間間隔定到納秒。 可用於需要精確定時的地方。
3.GCD在記憶體的管理上也比NSTimer省心,因為NSTimer容易造成記憶體洩露。
相關推薦
iOS -- GCD之延遲與定時器
我們開發常用的定時器有三種:NSTimer,CADisplyLink,CGD 本文詳細說一下CGD的延遲與定時器方法。文章最後,也會說說GCD與前兩個的區別。 直接上程式碼,首先是延遲的程式碼: 其中的delayInSeconds就是延遲的時間,執行之後,輸出臺會在2s之後,列
ActiveMQ(18):Message之延遲和定時消息投遞
jms activemq 延遲和定時消息投遞 一、簡介延遲和定時消息投遞(Delay and Schedule Message Delivery) 有時候我們不希望消息馬上被broker投遞出去,而是想要消息60秒以後發給消費者,或者我們想讓消息沒隔 一定時間投遞一次,一共投遞指定的次數。。。
MySQL5-函數/存儲過程與定時器、觸發器
名稱 狀態 訪問 safe 安全問題 ant comm gnu led 目錄 一、函數/存儲過程 二、定時器 三、觸發器 四、函數語句學習 一、函數/存儲過程 1、函數與存儲過程 (1) function與procedure的區別:一個有返回值,一個沒有,僅此而已。
IOS開發之——objectForKey與valueForKey在NSDictionary中的差異
什麽 iat app 報錯信息 lease 方法 去掉 defined atom 從 NSDictionary 取值的時候有兩個方法,objectForKey: 和 valueForKey:,這兩個方法具體有什麽不同呢? 先從 NSDictionary 文檔中來看這兩個方法
Linux時間子系統之四:定時器的引擎:clock_event_device
到來 開始 register 工作模式 統一 10個 net 說過 序列 早期的內核版本中,進程的調度基於一個稱之為tick的時鐘滴答,通常使用時鐘中斷來定時地產生tick信號,每次tick定時中斷都會進行進程的統計和調度,並對tick進行計數,記錄在一個jiffies變量
Linux時間子系統之七:定時器的應用--msleep(),hrtimer_nanosleep()
get 關系 警告 mov signed num wakeup sch switch 我們已經在前面幾章介紹了低分辨率定時器和高精度定時器的實現原理,內核為了方便其它子系統,在時間子系統中提供了一些用於延時或調度的API,例如msleep,hrtimer_nanosleep
iOS-方法之+ initialize 與 +load(轉載)
發生 imp 應用 str ret end 差異 brush object Objective-C 有兩個神奇的方法:+load 和 +initialize,這兩個方法在類被使用時會自動調用。但是兩個方法的不同點會導致應用層面上性能的顯著差異。 一、+ initiali
CLR類型設計之方法與構造器
重寫 理想 額外 整潔 字符 聲明 -1 ima 就會 C#語言中最常用到的就是方法的語法,如果在控制臺應用程序中,一定要有一個Main()方法作為程序入口,本文討論的不是方法實現也不是為什麽要寫方法,而是來討論下如何構造器和擴展方法。
stm32打怪升級之瞥眼定時器
idt blog app include 定時器 rip 搜索 lcm clas 定時器TIM------->DMA(不用看功能直接忽略介紹) 外部中斷得開啟復用功能 定時器TIM)時鐘源:stm32時鐘系統框圖(需要下載)外部中斷得開啟復用功能實驗目的:定時1s讓燈
iOS開發之地圖與定位
control 移動 idt line tor mkmapview 什麽 .cn 構建 不管是QQ還是微信的移動client都少不了定位功能,之前在微信demo中沒有加入定位功能,今天就寫個定位的小demo來了解一下定位和地圖的東西。地圖和定位看上去是挺高大
MySQL觸發器與定時器的介紹和錯誤處理
MySQL觸發器與定時器的介紹和錯誤處理方法 最近在做一個東南亞的海外專案,整個專案的技術架構是由我負責,由於專案比較龐大,涉及三種語言,資料關係比較複雜,用的觸發器、定時器比較多。借這個新型大專案,也重溫了了很久沒有接觸的觸發器(TRIGGER)、定時器(EVENT),本文也是回憶結合
iOS開發之NSDictionary與NSMutableDictionary
NSDictionary不可變字典 1、[NSDictionary dictionaryWithObjectsAndKeys:..]: 使用鍵值對兒直接建立字典物件,結尾必需使用nil標誌結束。 2、[NSDictionary initWithObjectsAndKeys:..]:
iOS開發之OC與swift開發混編教程,代理的相互呼叫,block的實現。OC呼叫Swift中的代理, OC呼叫Swift中的Block 閉包
本文章將從兩個方向分別介紹 OC 與 swift 混編 1. 第一個方向從 swift工程 中引入 oc類 1. 1 如何在swift的類中使用oc類 1.2 如何在swift中實現oc的代理方法 &
iOS第四課 NSTimer定時器
可以在每隔固定時間傳送一個訊息 通過此訊息來呼叫相應的時間函式 通過此函式可在固定時間段來完成一個根據時間間隔的人物 UIButton* btn=[UIButton buttonWithType:UIButtonTypeRoundedRect]; btn.frame=CG
從零開始的全棧工程師——js篇2.14(表單與定時器)
一、表單 Form input select textarea type=”radio/checkbox/password/button/text/submit/reset/” 表單的事件 onchange 當表單內容被修改時觸發的事件 onfocus 獲取
iOS開發之HTTP與HTTPS網路請求
HTTP是網際網路中應用最為廣泛的一種網路協議,在進入正文之前,先解釋什麼是網路協議?網路協議為計算機網路中進行資料交換而建立的規則、標準或約定的集合。網路協議是由以下三個要素組成:語義、語法、時序。 (1) 語義 語義是解釋控制資訊每個部分的意義。它規定了需要發出何種控制資訊,
STC51微控制器中斷與定時器配置參考
*外中斷INT0--------void intsvr0(void) interrupt 0 using 1 *定時/計數器T0-----void timer0(void) interrupt 1 using 1 *外中斷INT1--------void intsvr0(void)
iOS開發之wkwebview與AFNetworking共享cookie
一般在web與js的互動中想再post時需要拿到web裡的使用者資訊,登入狀態等,需要傳遞web的cooki wk設定–>wk獲取–>儲存–>af取–>af設定 wkwebview的處理 WKWebViewConfigura
Java之幾種定時器的使用
沒有去仔細研究這兩種定時器的API,會使用及能在專案中應用即可; import org.quartz.CronExpression; import org.quartz.CronTrigger; import org.quartz.JobDetail; import org.quartz.S
利用隨機數與定時器做一個簡單的偽隨機抓鬮遊戲
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title></title> <style type="text/css"> *