2010-08-06 10 views
0

Je crée ma propre plume, et classe pour cela. J'ai branché tous les contrôles à la classe dans le constructeur de l'interface. Quand je cours, ça marche bien. Le seul problème est que quand je scrole la tableview il se bloque. Des idées quelle pourrait être l'erreur? J'ai essayé de résoudre ce problème pendant un moment en vain. Cela donne un EXC_BAD_ACCESS dont je ne suis pas sûr comment déboguer.Iphone SDK - Problèmes avec la NIF UITableViewCell personnalisée

int cellType = [streamDataProvider cellTypeForIndex:indexPath.row]; 

if(cellType == HOP_GRAFITTI){ 
    static NSString *CellIdentifier = @"HopGrafittiStreamCell"; 
    HopGrafittiStreamCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier]; 
    if (cell == nil) { 
     NSArray *nib = [[NSBundle mainBundle] loadNibNamed:@"HopGrafittiStreamCell" owner:self options:nil]; 
     cell = (HopGrafittiStreamCell *)[nib objectAtIndex:0]; 
     [cell retain]; 
    } 

    [cell.username setText: [streamDataProvider userNameForIndex:indexPath.row]]; 
    [cell.venuename setText: [streamDataProvider venueNameForIndex:indexPath.row]];   
    [cell.grafittiText setText: [streamDataProvider grafittiForIndex:indexPath.row]];     
    return cell; 
} 
+0

jamais l'esprit - il se trouve streamDataProvider avait un objet interne qui n'a pas été retenu et être garbage collection – Fountainhop

+0

Vous pouvez déboguer accidents comme celui-ci en utilisant l'instrument Zombies dans Instruments. –

+0

ordures collectées? – taskinoor

Répondre

0

Si vous avez besoin encore, voici un moyen utile pour déboguer une erreur de EXC_BAD_ACCESS en définissant un point d'arrêt symbolique. Si couru en mode débogage, le débogueur casse au point de EXC_BAD_ACCESS vous donnant la possibilité de regarder la trace de la pile et de travailler sur ce qui a causé le problème:

  • Ouvrez la fenêtre de débogage
  • Ouvrez la fenêtre des points d'arrêt (Afficher les points d'arrêt) en haut à droite
  • Double-cliquez sur la ligne qui lit 'double-clic pour le symbole'
  • type dans objc_exception_throw et le retour de la presse

Vous pouvez laisser ceci dans votre projet de manière permanente car il sera toujours utile chaque fois que vous rencontrez une erreur EXC_BAD_ACCESS.

Hope this helps

+0

'EXC_BAD_ACCESS' n'est pas une exception Objective-C, il s'agit d'une exception * noyau *, c'est-à-dire que le processus s'est bloqué directement. Vous pouvez l'obtenir dans n'importe quel programme, qu'il utilise ou non le runtime Obj-C; un programme C simple peut produire un tel crash. Cela déclenchera le débogueur de toute façon; il n'est pas nécessaire de définir un point d'arrêt. De plus, le débogueur n'est pas très utile pour déboguer 'EXC_BAD_ACCESS' dans les applications Objective-C, où il indique généralement un message envoyé à un objet mort. Dans ces cas, l'instrument Zombies est beaucoup plus utile pour traquer la cause de la mort erronée de l'objet. –