gpt4 book ai didi

ios - 自定义 uitextfield 的保留循环(强引用)修复?

转载 作者:可可西里 更新时间:2023-11-01 00:56:02 27 4
gpt4 key购买 nike

我有一个自定义文本字段类“loginTextFields”。我最近注意到我在其中使用这些文本字段的 View Controller 没有被释放,我怀疑它与这些文本字段有关......非常感谢任何指导:)我已经查了很多stackoverflow 帖子,但没有一个真正帮助我。

txt 字段类:

class LoginTextFields: UITextField, UITextFieldDelegate {

override init(frame: CGRect) {
super.init(frame: frame)

delegate = self
setConstraints()
}
}

View Controller :

class LoginController: UIViewController {
@IBOutlet weak var usernameTextField: LoginTextFields!
@IBOutlet weak var passwordTextField: LoginTextFields!

}

我猜想并在 loginTextfield 类中添加了一个“删除”方法,试图在用户从 View Controller 中退出时将所有内容设置为 nil(怀疑委托(delegate)可能与它有关而不是解除分配) .我希望这会删除任何强引用,但它没有用

  func delete() {
self.delegate = nil
self.text = nil
self.leftSideIcon.removeFromSuperview() //small icon inside text field
self.removeFromSuperview()
}

最佳答案

在 iOS 11 的 UITextField 中有一个已知的保留周期,可以防止它被释放。 See this thread on Apple's developer forums进行分析。

该错误应在 iOS 11.2.5 中修复,according to this tweet .

如果您的文本字段对 View Controller 有很强的引用,那可能会导致您的问题。您能否在现在可用的 iOS 11.2.5 beta 3 上进行测试,看看它是否解决了您的问题?

关于ios - 自定义 uitextfield 的保留循环(强引用)修复?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48088704/

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