J'apprends juste à utiliser UISCrollView et j'ai écrit un code simple qui charge quatre MenuItem client (UIViewControllers) dans un UIScrollView.Erreur EXC_BAD_ACCESS mais pas de zombies déclenchés
scrollView.pagingEnabled = YES;
scrollView.contentSize = CGSizeMake((scrollView.frame.size.width + menuItemPadding) * menuItemCount, scrollView.frame.size.height);
scrollView.showsVerticalScrollIndicator = NO;
scrollView.showsHorizontalScrollIndicator = NO;
scrollView.scrollsToTop = NO;
scrollView.delegate = self;
//now create and add the menu items
for (int i =1;i <= menuItemCount;i++)
{
MenuItem *newItem = [[MenuItem alloc] initWithMenuItemDetails:@"Hello"];
[newItem retain];
CGRect frame = scrollView.frame;
frame.origin.x = (frame.size.width + menuItemPadding) * i;
frame.origin.y = 0;
newItem.view.frame = frame;
[scrollView addSubview:newItem.view];
}
La ligne newItem.view.frame = frame génère une erreur EXC_BAD_ACCESS. J'ai essayé de savoir si newItem est publié trop tôt, ce qui déclencherait cette erreur, mais je ne vois pas où cela se produirait, et runnign Insruments avec NSZombie activé ne déclenche rien.
Une idée de la raison de cette erreur?
Merci beaucoup.
Peut-être utile si vous postez le code qui crée 'newItem.view'. Peut-être initWithMenuItemDetails? –
De plus, le '[newItem retain];' est inutile, 'alloc' renvoie déjà un objet" owning "(ce qui veut dire que vous devez le libérer, vous devez le relâcher deux fois). Last but not least, vous ne stockez pas ou ne libérez pas 'newItem', ce qui le fuit. – DarkDust
Merci. J'ai ajouté le retenir comme un test pour vérifier que l'objet était retenu. Je vais poster le reste du code maintenant ... – AustinRathe