0

我正在务实地设置一个带有 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];

    }
}

如您所见,我正在为所有这些文本字段创建属性并将它们分配给新创建的字段。

我的问题是我应该使用 (nonatomic, strong) 还是 (nonatomic, weak) ?

@property(nonatomic, weak) UITextField *idField;
//Or
@property(nonatomic, strong) UITextField *idField;
4

1 回答 1

0

您根本不应该为这些文本字段创建成员变量。您需要第二个文本字段做什么?也许另一种单元格样式就足以满足您的目的?例如UITableViewCellStyleValue1UITableViewCellStyleValue2UITableViewCellStyleSubtitle

但是如果你需要一个自定义的,只需为其分配一个标签(例如 tableViewCell 的行),然后通过viewWithTag:. 如果您想直接访问,请考虑自定义 UITableViewCell 子类。

直接回答您的问题:这里可能是一个弱引用就足够了,因为 textField 被添加到一个单元格上,它不会在任何时候被释放(因为它将被重用)。

于 2012-10-15T17:43:55.247 回答