gpt4 book ai didi

ios - Swift:NSTimer 内存泄漏

转载 作者:行者123 更新时间:2023-11-29 00:49:14 24 4
gpt4 key购买 nike

我正在运行一个快速的 NSTimer(每 0.15 秒),我发现大约每 10 秒内存增加大约 0.5mb。

这是我的代码:

    dispatch_async(dispatch_get_main_queue(),{
//Prepare timer handshake
if let tmr = self.tmrHandshake {
tmr.invalidate()
self.tmrHandshake = nil
}
self.tmrHandshake = NSTimer.scheduledTimerWithTimeInterval(0.15, target: self, selector: #selector(self.sendLifeBeat), userInfo: nil, repeats: true)
NSRunLoop.mainRunLoop().addTimer(self.tmrHandshake!, forMode: NSRunLoopCommonModes)
})

以及选择器方法:

dynamic private func sendLifeBeat() {
let dataBytes = NSMutableData(data: lifebeatCmd.dataUsingEncoding(NSUTF8StringEncoding)!)
dataBytes.appendData(terminator.dataUsingEncoding(NSUTF8StringEncoding)!)

socketClient!.writeData(dataBytes, withTimeout: 5, tag: 1)
}

这些“dispatch_async”在后台线程上运行的方法中被调用。

您对如何解决这个问题有什么建议吗?谢谢。

最佳答案

在闭包中将 self 设为弱引用或无主引用 - 你有一个引用循环并且它没有释放

关于ios - Swift:NSTimer 内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38310254/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com