@property (nonatomic, retain) NSString *text;
с этим свойством я сохраняю текст из текстового поля, которое я создаю в UITableViewCell
static NSString *cellIdentifier = @"fieldTableCell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:cellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:cellIdentifier] autorelease];
UITextField *textField = [[UITextField alloc] initWithFrame:CGRectMake(10, 12, 275, 25)];
textField.clearsOnBeginEditing = NO;
textField.returnKeyType = UIReturnKeyDone;
[textField addTarget:self action:@selector(textFieldDone:) forControlEvents:UIControlEventEditingDidEndOnExit];
[cell.contentView addSubview:textField];
}
// re-get textField and set tag to section
if (section == 1) {
textField.text = self.text; // Where the problem is
textField.tag = section;
}
и
- (void)textFieldDone:(id)sender {
UITextField *field = sender;
if (field != nil) {
NSInteger section = field.tag;
if (section == 1) {
self.text = field.text;
}
}
}
Однако, обратно в cellForRowAtIndexPath устанавливается textField.textвернуться к сохраненному тексту.Проблема в том, что когда он делает это, он дает мне
- [CFString _isNaturallyRTL]: сообщение отправляется на освобожденный экземпляр 0x2c459ff0
, когда я смотрю на self.text в cellForRowAtIndexPathв отладчике он говорит, что это NSZombie_NSString ... так что каким-то образом он получает dealloc'd.Я попытался установить свойство для копирования, копирование строки с помощью [initWithString] ... Почему строка получает dealloc'd?