0

私は実用的に、uitextfields、uisegmentedcontrolsなどでテーブルビューを設定しています.

これが例です

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

これらの textFields のメンバー変数をまったく作成しないでください。2 番目の textField は何のために必要ですか? あなたの目的には、別のセル スタイルで十分ではないでしょうか? 例えばUITableViewCellStyleValue1UITableViewCellStyleValue2またはUITableViewCellStyleSubtitle

ただし、カスタムのものが必要な場合は、タグ (tableViewCell の行など) を割り当てて、後で を介して取得しますviewWithTag:。直接アクセスしたい場合は、カスタム UITableViewCell サブクラスを考えてください。

あなたの質問に直接答えるには:おそらくここでは弱い参照で十分でしょう.textFieldはセルに追加され、いつでも割り当てが解除されることはありません(再利用されるため)。

于 2012-10-15T17:43:55.247 に答える