[教學] Swift 單線程 多線程 範例 GCD
Swift
Grand Central Dispatch(GCD)
也就是很常使用的多線程or單線程
也是同步與異步 這幾種說法
這邊就介紹一般的簡易用法
async 是非同步 或是多線程
所有任務一起執行
一群大媽一起衝進廁所
sync 是同步 或是單線程
任務排序進行
一群大媽排隊進廁所
使用方法如以下程式碼
global通常是使用在資料的運用
var testStr : String = "1"
DispatchQueue.global(qos: .userInitiated).async {
testStr = "2"
}
資料以外的UI更新
請用main更新
如以下程式碼
DispatchQueue.main.async {
self.dateLabel.text = testStr
}
兩樣合體
又要改變數 又要改UI
結構如下
應該蠻簡單的
async與sync 自行更換兩種型態
var testStr : String = "1"
DispatchQueue.global(qos: .userInitiated).async {
testStr = "2"
DispatchQueue.main.async {
self.dateLabel.text = testStr
}
}
OC
轉譯過來應該是這樣
可以比對一下
NSString * testStr = "1";
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT,0), ^{
NSString * testStr = "2";
dispatch_async(dispatch_get_main_queue(), ^{
self.dateLabel.text = testStr;
});
});
延遲宣告
如果要延遲宣告一些func
可以用以下程式碼
DispatchQueue.main.asyncAfter(deadline: .now() + 1.0, execute: {
self.addView()
})
Swift更多文章
Swift 彈出視窗 AlertController 的使用方法 💥
duodenal gastric ulcers buy antibiotics online for uti buy antibiotics for uti online
promethazine 25mg over the counter order stromectol 3mg pills ivermectin 90 mg