繁体   English   中英

为自定义uitextfield保留周期(强参考)修复程序?

[英]Retain Cycle (Strong reference) fix for custom uitextfield?

我有一个自定义文本字段类“ loginTextFields”。 我最近注意到,使用这些文本字段的视图控制器没有被释放,我怀疑它与这些文本字段有关系...任何指导都将不胜感激:)我查找了很多stackoverflow帖子,但没有一个真正帮助我。

txt字段类:

class LoginTextFields: UITextField, UITextFieldDelegate {

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

    delegate = self
    setConstraints()
  }
}

视图控制器:

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

}

我猜测并在用户登录视图控件时将“ delete”方法添加到loginTextfield类中,以尝试将所有内容都设置为nil(怀疑委托可能与未取消分配有关)。 我希望这会删除任何有力的参考,但是没有用

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

iOS 11中的UITextField中存在一个已知的保留周期,可防止其被释放。 请参阅Apple开发人员论坛上的该主题以进行分析。

根据此推文 ,该错误应在iOS 11.2.5中修复。

如果您的文本字段对视图控制器有很强的引用,则可能会导致问题。 您可以在现在可用的iOS 11.2.5 beta 3上进行测试,看看它是否可以解决您的问题?

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM