Swift 闭包中循环引用解决方式

Swift 闭包中循环引用解决方式,第1张

概述Swift 闭包中循环引用解决方式 示例说明:开启一个定时器,然后每隔一秒钟加1秒,直到60秒 变量声明 //声明一个定时器变量var timer: Timer?var currentSeconds: Int = 0 weak 方式 func testTimer(){ weak var weakSelf : CurrentController? = self Swift 闭包中循环引用解决方式

示例说明:开启一个定时器,然后每隔一秒钟加1秒,直到60秒

变量声明

//声明一个定时器变量var timer: Timer?var currentSeconds: Int = 0
weak 方式
func testTimer(){        weak var weakSelf :  CurrentController? = self        timer = Timer.scheduledTimer(withTimeInterval: 1.0,repeats: true,block: { _ in            weakSelf?.currentSeconds += 1            if weakSelf?.currentSeconds == 60{                weakSelf?.timer?.invalIDate()                weakSelf?.timer = nil            }        })    }
[weak self] 方式
func testTimer(){        timer = Timer.scheduledTimer(withTimeInterval: 1.0,repeats: true,block: {[weak self] (_) in            self?.currentSeconds += 1            if self?.currentSeconds == 60{                self?.timer?.invalIDate()                self?.timer = nil            }        })    }
[uNowned self] 方式
func testTimer(){        timer = Timer.scheduledTimer(withTimeInterval: 1.0,block: {[uNowned self] (_) in            self.currentSeconds += 1            if self.currentSeconds == 60{                self.timer?.invalIDate()                self.timer = nil            }        })    }
总结

以上是内存溢出为你收集整理的Swift 闭包中循环引用解决方式全部内容,希望文章能够帮你解决Swift 闭包中循环引用解决方式所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1062819.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存