Утечка памяти (?) После того, как UITextField коснулся даже один раз - PullRequest
0 голосов
/ 13 января 2019

Спасибо, что прочитали мой вопрос. (Извините за мой плохой английский.)
В моем коде я обнаружил утечку памяти на графике и инструментах отладочной памяти (Xcode).

Вот мой код (Swift4.2),

class ViewController: UIViewController {

    override func viewDidLoad() {
        super.viewDidLoad()
        self.setUpUI()
    }

    private func setUpUI(){
        self.view.backgroundColor = .orange
        let textField = myTextField()
            textField.center = self.view.center
        self.view.addSubview(textField)
    }

    override func touchesBegan(_ touches: Set<UITouch>, with event: UIEvent?) {
         self.view.endEditing(true)
    }
}

class myTextField:UITextField{
    override init(frame: CGRect) {
         super.init(frame: frame)
         self.setUpUI()
    }

    required init?(coder aDecoder: NSCoder) {
        fatalError("init(coder:) has not been implemented")
    }

    private func setUpUI(){
        self.frame.size = CGSize(width: 300, height: 50)
        self.backgroundColor = .lightGray
        self.placeholder = "TEXT"
        self.delegate = self
    }
}

extension myTextField:UITextFieldDelegate{
    func textFieldShouldReturn(_ textField: UITextField) -> Bool {
        self.resignFirstResponder()
        return true
    }
}

При утечке памяти
・ Запустите этот код на моем iPhone6 ​​(iOS10.1), а не на симуляторе iOS (эта утечка памяти не обнаружена на симуляторе iOS).
Leak Я обнаружил утечку памяти после того, как UITextField коснулся (показать клавиатуру) даже один раз.
Leak Эта утечка памяти не устраняется после завершения редактирования (скрыть клавиатуру).
Use Я использую график отладочной памяти (Xcode) и инструменты (проверка на утечку).

Я не знаю, что происходит и как лучше всего решить эту проблему.
Кто-нибудь может мне помочь?
Спасибо.

...