自定义UITableViewCells UITextField强或弱参考?

时间:2012-10-15 17:29:19

标签: objective-c ios uitableview automatic-ref-counting

我用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;

1 个答案:

答案 0 :(得分:0)

你根本不应该为那些textField创建成员变量..你需要第二个textField?或许另一种Cell Style足以满足您的需求?例如。 UITableViewCellStyleValue1UITableViewCellStyleValue2UITableViewCellStyleSubtitle

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

直接回答你的问题:可能弱引用就足够了,因为textField被添加到一个单元格上,不会在任何时候被解除分配(因为它会被重用)。