我目前正在我的应用程序中使用我将在下面描述的范例并且它有效,所以这不是一个大问题;但是,我想知道我是否违反了这种模式的某种规则。
我正在使用 ARC。
我有一个显示模态视图控制器的应用程序。它有一个表格视图。
然后我有一个“添加”按钮,允许我在表格视图中输入一些数据。
按下添加,弹出一个从 UIView 创建的小对话框,其中包含许多文本字段。- 每个文本字段都是一个实例变量。
当我的 add 方法被调用时,我正在分配初始化 textField 实例变量。
我的问题是:是否可以在我的 viewController 上调用这个 add 方法来实例化实例变量并使用它们,然后再次调用相同的方法,这将在已经分配并最后初始化的实例变量上调用 alloc init调用该方法的时间。
因此在同一个 ivars 上调用 alloc init 而不先将它们 niling - 我也在使用 ARC?
像这样的伪代码:
。H
@property UITextField *textField;
.m
@synthesize textField;
(void) someMethod {
textField = [[UITextField alloc] init]
[textField doSomethingElse]
}
之后
一些方法被一遍又一遍地调用。
我应该改为分配初始化所有文本字段,然后在 add 方法中从我的 UIView 中添加和删除它们吗?
谢谢,问候,约翰