我真的问为什么会出现内存泄漏的原因。
我有一个带有两个简单UITextField
对象的视图控制器。我想要一些左缩进,因此我在为两者创建IBOutlet
之后将以下内容应用于它们:
var textFieldIndentation = UIView(frame: CGRectMake(0, 0, 20, 0))
self.usernameField.leftViewMode = UITextFieldViewMode.Always
self.usernameField.leftView = textFieldIndentation
self.passwordField.leftViewMode = UITextFieldViewMode.Always
self.passwordField.leftView = textFieldIndentation
大约15秒后,我注意到我的应用程序占用了超过1.5GB的RAM,而且它一直在使用100%的处理器。
为什么会这样?
答案 0 :(得分:0)
对于UIView
个对象,请勿使用与leftView
相同的UITextField
实例。由于您已将leftViewMode
设置为Always
,因此它将从一个textFieldIndentation
实例中重复删除UITextField
对象,以便将其添加到另一个UITextField
实例
简单地做
var textFieldIndentationU = UIView(frame: CGRectMake(0, 0, 20, 0))
var textFieldIndentationP = UIView(frame: CGRectMake(0, 0, 20, 0))
self.usernameField.leftViewMode = UITextFieldViewMode.Always
self.usernameField.leftView = textFieldIndentationU
self.passwordField.leftViewMode = UITextFieldViewMode.Always
self.passwordField.leftView = textFieldIndentationP