侧边栏壁纸
博主头像
钱学超博主等级

火星人,1万小时法则的忠实拥趸。技术宅,象棋和羽毛球爱好者,马拉松PB成绩:4小时零8分。坚持认为算法是计算机的灵魂。喜欢解决问题,喜欢手工,喜欢与朋友们聊天喝酒吹牛X。

  • 累计撰写 72 篇文章
  • 累计创建 395 个标签
  • 累计收到 78 条评论
标签搜索

目 录CONTENT

文章目录

swift延迟执行代码的几种方式

钱学超
2023-02-19 / 0 评论 / 0 点赞 / 23 阅读 / 90 字 / 正在检测是否收录...

// 1.perform(必须在主线程中执行)
self.perform(#selector(delayExecution), with: nil, afterDelay: 3)
// 取消
NSObject.cancelPreviousPerformRequests(withTarget: self)

// 2.timer(必须在主线程中执行)
Timer.scheduledTimer(timeInterval: 3, target: self, selector: #selector(delayExecution), userInfo: nil, repeats: false)

// 3.Thread (在主线程会卡主界面)
Thread.sleep(forTimeInterval: 3)
self.delayExecution()

// 4.GCD 主线程/子线程
DispatchQueue.main.asyncAfter(deadline: .now() + 3) {
self.delayExecution()
}

DispatchQueue.global().asyncAfter(deadline: .now() + 3) {
self.delayExecution()
}

0

评论区