我试图从前 3 个小时中找出这个错误。通过搜索,我知道这个错误与内存管理有关,但我没有弄清楚我做错了什么。
我已经声明了这 4 个标签:
@interface InteractiveHistory : UITableViewController {
UILabel *date;
UILabel *startTime;
UILabel *cal;
UILabel *duration;
}
然后创建属性并合成它们。在 viewDidLoad 中,我都像这样初始化:
date = [[UILabel alloc] init];
我还在 dealloc() 方法中释放了它们。
我想要做的是使用这 4 个标签在表格的单元格中写一些文本。文本将取决于 indexPath。
在 cellForRowAtIndexPath 方法中,仅显示 2 个标签并指示错误行:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"Cell";
UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier];
if (cell == nil) {
cell = [[[UITableViewCell alloc] initWithStyle:UITableViewCellStyleSubtitle reuseIdentifier:CellIdentifier] autorelease];
NSLog(@"constructing cell");
//set up labels text
date = [NSString stringWithFormat:@"%@",[[int_data objectAtIndex:indexPath.row] objectForKey:@"Date"]];
NSLog(@"%@",date.text); //App crashes at this line
[date setTag:1];
startTime = [NSString stringWithFormat:@"%@",[[int_data objectAtIndex:indexPath.row] objectForKey:@"Start Time"]];
//setting tag and position of label
[startTime setTag:2];
CGRect labelpos = startTime.frame;
labelpos.origin.y = date.bounds.size.height + 2;
startTime.frame = labelpos;
NSLog(@"labels set");
// Configure the cell...
[[cell contentView] addSubview:date];
[[cell contentView] addSubview:startTime];
[[cell contentView] addSubview:duration];
[[cell contentView] addSubview:cal];
NSLog(@"A cell set");
}
return cell;
}
谁能告诉我我做错了什么?我希望我的问题很清楚..