我创建了一个表{1}}的表视图控制器。如何填充来自UITextField
的输入文本的tableview控制器单元格。我尝试了以下但似乎数组是空的或被清空
UITextField
在我的- (IBAction)endingInput:(id)sender{
[sender resignFirstResponder];
//send the message to the table cell
NSMutableArray *history = [[NSMutableArray alloc] init];
[history addObject:[NSString stringWithFormat:@"%@",self.chatMessageField.text]];
[self.chatHistory addObject:history];
[myTableView reloadData];
//push the message to server
[self initiateMessageSending:self.chatMessageField.text];
chatMessageField.text = @"";
[history release];
}
方法上
cellForRowAtIndex
我设置了一个断点,但它没有通过那里。我怀疑我的阵列是空的。
同样,调用static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
// Configure the cell...
if(cell == nil){
cell = [[UITableViewCell alloc] initWithStyle:UITableViewCellStyleDefault reuseIdentifier:CellIdentifier];
}
if(tableView == self.myTableView){
cell.textLabel.text = [chatHistory objectAtIndex:indexPath.row];
}
return cell;
方法的最佳位置在哪里?
另外,reloadData
是私有成员,有没有办法像chatHistory
一样初始化它?
我知道这是一个常见问题,但我现在已经讨价还价了。
答案 0 :(得分:0)
我认为您忘记分配并初始化chatHistory
- (void)viewDidLoad
{
self.chatHistory = [[NSMutableArray alloc] init];
}
答案 1 :(得分:0)
如果你没有初始化chatHistory
它甚至不存在......不要介意空虚! (我不清楚“私人会员”在这里是什么意思。)
如果您记录chatHistory
的值,您会看到它是否为空或是空的。
我看到的另一个问题是您尝试将chatHistory
加载到其他(history
)数组中,然后将其内容用作字符串。你应该决定它是一个数组数组还是一个字符串数组,然后保持一致。
([[self.chatHistory alloc] init];
也不是创建新对象的有效语法。请以正确的方式查看Objective-C language reference。)