预先:我是一个菜鸟。
我有一个方法可以在UITableViewCell中设置textLabel对象上的文本。相关的代码段是:
NSLog(@"BEFORE .textLabel.text: %@", _addWarmupActivityTableViewCell.textLabel.text);
NSLog(@"BEFORE activity.name: %@", theSelectedActivityToDisplayAndSave.name);
_addWarmupActivityTableViewCell.textLabel.text = theSelectedActivityToDisplayAndSave.name;
NSLog(@"AFTER .textLabel.text: %@", _addWarmupActivityTableViewCell.textLabel.text);
第一次设置时,它可以正常工作。您可以通过此日志记录查看:
[12231:c07] BEFORE .textLabel.text: (null)
[12231:c07] BEFORE activity.name: Animal Movements
[12231:c07] AFTER .textLabel.text: Animal Movements
然后,在之后调用它的任何后续时间,它将返回一个null,如以下日志记录所示:
[12231:c07] BEFORE .textLabel.text: (null)
[12231:c07] BEFORE activity.name: Animal Movements
[12231:c07] AFTER .textLabel.text: (null)
我必须承认我有点难过。我已经在其他帖子中读过(可能是)任何时候修改textLabel它实际上创建了一个新的UILabel对象。但是,对我来说,在我尝试设置它之后仍然没有解释为什么它是一个(null)一行?
任何指向正确方向的人都会非常感激。
干杯。
答案 0 :(得分:0)
你没有显示你分配/出列单元格的代码,所以很难说 - 我假设你在你列出之前的某个地方分配它。
你会有这样的事情:
- (UITableViewCell *)tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"cell"];
if (!cell)
{
cell = [[UITableViewCell alloc] initWithStyle: UITableViewCellStyleDefault reuseIdentifier:@"cell"];
}
cell.textLabel.text = theSelectedActivityToDisplayAndSave.name; // wherever you get this from
return cell;
}
这看起来与您使用的方法类似吗?
我认为我要看的是细胞是否正确分配。