2012-03-21 2 views
-1

테이블 뷰 didSelectRowAtIndexPath:에 오류가 발생하여 에 할당 해제 된 인스턴스으로 메시지가 전송되었습니다. 로컬 웹 서비스로 잘 작동합니다. 하지만 라이브 웹 서비스에서는 작동하지 않습니다. Idname :tableView : didSelectRowAtIndexPath : 할당 된 인스턴스에 메시지가 전송되었습니다.

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

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

TreasureModel 두 개의 필드가 포함되어 있습니다.

TreasureDataTreasureModel을 보유하고 있습니다.

+1

최소한 doSelectRowAtIndexPath 코드를 게시해야합니다. –

+0

- (void) tableView : (UITableView *) tableView didSelectRowAtIndexPath : (NSIndexPath *) indexPath {TreasureModel * data = [[TreasureModel alloc] init]; data = [self.treasureData objectAtIndex : indexPath.row]; treasureID = [NSString stringWithFormat : data.Id]} TreasureModel에는 Id와 name의 두 필드가 있습니다. treasuredata는 보유하고 TreasureModel의 객체입니다. –

+0

나는 당신의 질문에 코드를 복사했다. - 희망이 있으면 downvoting을 멈출 것이다 :'treasureID'는 어떻게 정의 되었습니까? iVar 또는'self'의 속성 -'self'에 의해'treasureData'를 보유한 객체를 의미합니까? 네 종류의'Id'와'name'은 무엇입니까? –

답변

0

가독성을 위해 의견 대신 답변에 게시하고 있습니다.

의 유일한 목적은 data.IdtreasureID에 저장하는 것입니다. 그리고 treasureIDiVarNSString * 유형입니다.

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]; 
} 

를이 우리가거야 작동하지 않는 경우 알려서 문제를 찾기 위해 한 코드에서.

관련 문제