Closed HZRZCW closed 5 months ago
代码截图, 闭包内是否加了[weak self] ?
代码截图, 闭包内是否加了[weak self] ?
闭包内没有任何代码也一样会。
??? 我测试了Demo中的页面 都是可以正常deinit的, 可以提供尽可能全的代码截图吗? 方便分析
??? 我测试了Demo中的页面 都是可以正常deinit的, 可以提供尽可能全的代码截图吗? 方便分析
我再测试一下
注意 action回调闭包即使你传入的是一个function, 只要使用了外部变量就会产生引用
Demo中ActionViewController 里 使用的就是function形式, 如果在方法内要访问self, 如下:
weak var `self` = self
func clicked(_ result: ASAttributedString.Action.Result) {
self?.label.backgroundColor = .brown
}
Demo中ActionViewController 里 使用的就是function形式, 如果在方法内要访问self, 如下:
weak var `self` = self func clicked(_ result: ASAttributedString.Action.Result) { self?.label.backgroundColor = .brown }
验证了一下, 确实如此, Swift语法的定义, 可以曲线救国的方法只有在方法内嵌套一个子方法调用外部方法了.
weak var `self` = self
func clicked(_ result: ASAttributedString.Action.Result) {
self?.clicked(result)
}
验证了一下, 确实如此, Swift语法的定义, 可以曲线救国的方法只有在方法内嵌套一个子方法调用外部方法了.
weak var `self` = self func clicked(_ result: ASAttributedString.Action.Result) { self?.clicked(result) }
能用就行,不过可以提醒下其他人
重新打开吧,有别的问题 zhe zhon这种写法也是会导致不走deinit
这是来自QQ邮箱的假期自动回复邮件。 您好,谢谢你联系我。我会尽快给您回复。
作者快点解决一下吧
重新打开吧,有别的问题 zhe zhon这种写法也是会导致不走deinit
是的, 上面有人提到了
重新打开吧,还有其他问题zhon这种写法也会导致走不了deinit
是的,上面有人提到过
我看到很长时间没有解决,希望大佬可以抓紧时间修复一下
重新打开吧,还有其他问题zhon这种写法也会导致走不了deinit
是的,上面有人提到过
我看到很长时间没有解决,希望大佬可以抓紧时间修复一下
这受限于Swift特性, 我无法解决, 只能建议绕开这种用法
重新打开吧,还有其他问题zhon这种写法也会导致走不了deinit
是的,上面有人提到过
我看到很长时间没有解决,希望大佬可以抓紧时间修复一下
这受限于Swift特性, 我无法解决, 只能建议绕开这种用法
好吧😂
weak var
self
= self
还有一种写法,把子控件的引用设为weak。
weak var hasAttrV: UIView?
……
let v = getAttrView
superView.addSubview(v)
hasAttrV = v
一直没搞明白,这个子View到底是怎么持有到控制器的,action指向控制器的函数或者闭包,就能持有了?用 [weak self] 都不行?
这是来自QQ邮箱的假期自动回复邮件。 您好,谢谢你联系我。我会尽快给您回复。
如题!!!!!!