Спасибо, что прочитали мой вопрос.
(Извините за мой плохой английский.)
В моем коде я обнаружил утечку памяти на графике и инструментах отладочной памяти (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) и инструменты (проверка на утечку).
Я не знаю, что происходит и как лучше всего решить эту проблему.
Кто-нибудь может мне помочь?
Спасибо.