【发布时间】:2013-08-07 06:35:13
【问题描述】:
我目前正在我的应用程序中使用我将在下面描述的范例并且它有效,所以这不是一个大问题;但是,我想知道我是否违反了这种模式的某种规则。
我正在使用 ARC。
我有一个显示模态视图控制器的应用程序。它上面有一个表格视图。
然后我有一个“添加”按钮,允许我在表格视图中输入一些数据。
按下添加,会弹出一个从 UIView 创建的小对话框,其中包含许多文本字段。 - 每个文本字段都是一个实例变量。
当我的 add 方法被调用时,我正在分配初始化 textField 实例变量。
我的问题是:是否可以在我的 viewController 上调用这个 add 方法来实例化实例变量并使用它们,然后再次调用相同的方法,这将在已经分配的实例变量上调用 alloc init 和上次调用该方法时初始化。
因此在相同的 ivars 上调用 alloc init 而不先将它们 nil - 我也在使用 ARC?
类似这样的伪代码:
.h
@property UITextField *textField;
.m
@synthesize textField;
(void) someMethod {
textField = [[UITextField alloc] init]
[textField doSomethingElse]
}
稍后
一些方法被反复调用。
我应该改为分配初始化所有文本字段,然后在 add 方法中从我的 UIView 中添加和删除它们吗?
谢谢, 问候, 约翰
【问题讨论】:
-
如果您要重用文本字段,那么每次调用该方法时都没有必要一遍又一遍地创建它们,您不觉得吗?
-
当然,我怎样才能避免一遍又一遍地创建它们,也许只是在 viewDidLoad 中分配初始化?
标签: ios objective-c cocoa-touch uikit