我用uitextfields,uisegmentedcontrols等实际设置了一个tableview。
这是一个例子
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
//NSLog(@"creating a new %@", CellIdentifier);
if([CellIdentifier isEqualToString:@"ID"]) {
UITextField *newTextField = [[UITextField alloc] initWithFrame:CGRectMake(80, 5, 215, 34)];
self.idField = newTextField;
[cell addSubview:self.idField];
}
}
我正在为所有这些文本字段创建属性,并将它们分配给新创建的字段,如您所见。
我的问题是我应该使用(非原子的,强的)还是(非原子的,弱的)?
@property(nonatomic, weak) UITextField *idField;
//Or
@property(nonatomic, strong) UITextField *idField;
答案 0 :(得分:0)
你根本不应该为那些textField创建成员变量..你需要第二个textField?或许另一种Cell Style足以满足您的需求?例如。 UITableViewCellStyleValue1
,UITableViewCellStyleValue2
或UITableViewCellStyleSubtitle
?
但是如果你需要一个自定义的,只需为它分配一个标签(例如tableViewCell的行),然后通过viewWithTag:
检索它。如果您想直接访问,请考虑自定义UITableViewCell子类。
直接回答你的问题:可能弱引用就足够了,因为textField被添加到一个单元格上,不会在任何时候被解除分配(因为它会被重用)。