-2

我正在开发一个在表格视图中列出一些项目的 iPhone 应用程序。单击项目时,我遇到了事件TreasureList tableView:didSelectRowAtIndexPath的错误。我对这个错误感到困惑。错误是

[TreasureList tableView:didSelectRowAtIndexPath:]: message sent to deallocated instance 0x7ce0020

代码如下:

 - (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{

ProductModel *data=[[ProductModel alloc]init];
  data=[self.treasureData objectAtIndex:indexPath.row];

pid=  [NSString stringWithFormat: data.ID];//WithFormat:@"%@",data.ID];   

还请让我知道如何调试信息“deallocated instance 0x7ce0020”

我正在通过以下方式将数据添加到 tableivew。

- (UITableViewCell *)tableView:(UITableView *)tableView
     cellForRowAtIndexPath:(NSIndexPath *)indexPath
{

static NSString *SimpleTableIdentifier = @"SimpleTableIdentifier";
UITableViewCell *cell = [tableView
                         dequeueReusableCellWithIdentifier:SimpleTableIdentifier];
if (cell == nil) {
    cell = [[[UITableViewCell alloc]initWithStyle:UITableViewCellStyleDefault
                                  reuseIdentifier:SimpleTableIdentifier] autorelease];
}
ProductModel *data=[self.treasureData objectAtIndex:indexPath.row];
cell.textLabel.text = [NSString stringWithFormat:data.pName];
   [data
    release];
return cell; 
}
4

1 回答 1

1

@Gijo您可能会收到此错误,因为某些已发送的消息已发送到您在表格单元格中使用的已发布对象,或者当您尝试在

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath

方法,它已经被释放,即一些对象、标签等。

于 2012-03-23T04:32:57.437 回答