2010-09-23 2 views
1

Je reçois un avertissement de mémoire: "Décrément incorrect du compte de référence d'un objet qui n'appartient pas à ce point par l'appelant "pour challengeCell à la ligne marquée.Décrément incorrect du compte de référence d'un objet qui n'appartient pas à ce point à l'appelant dans l'iphone

myIdentifier = @"ChallengTblVwCell";  
ChallengeTableViewCell *challengeCell = (ChallengeTableViewCell *)[tableView dequeueReusableCellWithIdentifier:myIdentifier]; 
if(challengeCell == nil) 
{ 
    [[ NSBundle mainBundle ] loadNibNamed:@"ChallengeTableViewCell" owner:self options:nil ]; 
    challengeCell = challengeTblCell; 
} 

else { 
//some code 
}   
     challengeInstance = [genericArray objectAtIndex:indexPath.row]; 
     NSString *challengeTitle = challengeInstance.elecompany; 

     [challengeCell initWithTitle:challengeTitle subTitle:challengeSubtitle _votes:challengeVotes content:challengeContent _time:challengeTime _image:challengeImage noComments:challengeCommentsNo]; //Warning coming at this line 
     return (UITableViewCell *)challengeCell; 

EDIT:

-(id)initWithTitle:(NSString *)_title content:(NSString *)_content fromName:(NSString *)_fromName _time:(NSString *)_time_ _image:(NSString *)_image_ noComments:(NSInteger)commentsNo 
{ 
    //Labels are created through interface builder 

[_lbltitle_ setText:_title];  
[_lbltime setText:_time_]; 
[lblcontent setText:_content]; 
[lblsubTitle setText:_fromName]; 
[lblnoOfComments setText:[NSString stringWithFormat:@"%d",commentsNo]]; 

// code for adjusting label height according to content. 

return self; 
} 

J'ai fait cette classe distincte pour la gestion de la cellule pour rendre sa manipulation facile.

Quelqu'un peut-il s'il vous plaît m'aider à résoudre ce problème?

Merci d'avance.

+0

À quoi ressemble la méthode personnalisée initWithTitle? –

Répondre

1

Ce sera mieux si vous postez votre code pour initWithTitle pour ces 2 lignes:

[challengeCell initWithTitle:challengeTitle subTitle:challengeSubtitle _votes:challengeVotes content:challengeContent _time:challengeTime _image:challengeImage noComments:challengeCommentsNo]; //Warning coming at this line 
return (UITableViewCell *)challengeCell; 

Mais ce que je suppose que vous avez déjà un objet challengeCell, déjà alloc-ed et init-ed. Votre code semble vraiment étrange pour être honnête. Habituellement, ce que les gens font sera [[UIChallengeCell alloc] initWithTitle...] pas de l'instance elle-même. Je pense que cela crée votre problème.

Ce que vous devez faire est de définir vous-même la propriété.

challengeCell.challengeTitle = challengeTitle; 
challengeCell.subTitle = challengeSubtitle; 
+0

Merci de répondre. J'ai édité ma question pour inclure ma méthode init, que j'ai créée dans la classe de la cellule respective afin que je puisse séparer la logique de l'interface cellule. – neha

+0

Je pense que votre méthode rend confus. Pourquoi ne pas le nommer 'setTitle: subTitle: ...' et retourner void. Ensuite, je pense qu'il va résoudre votre problème – vodkhang

+0

Oui, il l'a fait .. Thanx .. – neha

Questions connexes