tableView:didSelectRowAtIndexPath:发送到解除分配的实例的消息

时间:2012-03-21 07:21:32

标签: iphone uitableview

发送到解除分配的实例的表视图didSelectRowAtIndexPath:消息时出错。使用本地Web服务,它运行良好。但它不适用于实时网络服务。

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

    TreasureModel *data=[[TreasureModel alloc]init];
    data=[self.treasureData objectAtIndex:indexPath.row];
    treasureID=[NSString stringWithFormat:data.Id];
}

TreasureModel包含两个字段:Idname

TreasureData拥有TreasureModel的对象。

1 个答案:

答案 0 :(得分:0)

为了便于阅读,我将这个发布到答案而不是评论。

看来didSelectRowAtIndexPath:的唯一目的是将data.Id存储到treasureID中。它看起来treasureIDiVar类型的NSString *

您没有说明TreasureModel.Id类型是什么类型,因此这里有NSStringNSInteger的变体。

如果TreasureModel.IdNSString *,您可以使用:

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

    TreasureModel *data=(TreasureModel *)[self.treasureData objectAtIndex:indexPath.row];
    treasureID=[NSString stringWithString: data.Id];
}

如果是NSInteger,请尝试:

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

    TreasureModel *data=(TreasureModel *)[self.treasureData objectAtIndex:indexPath.row];
    treasureID=[NSString stringWithFormat: @"%d",data.Id];
}

如果这不起作用,我们将不得不在代码中找到问题所在。