Ошибка EXC_BAD_ACCESS, но зомби не сработали - PullRequest
1 голос
/ 28 ноября 2011

Я только учусь, как использовать UISCrollView, и написал некоторый простой код, который загружает четыре пользовательских MenuItem (UIViewControllers) в UIScrollView.

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

Создается строка newItem.view.frame = frameошибка EXC_BAD_ACCESS.Я пытался отследить, если newItem выходит слишком рано, что вызовет эту ошибку, но я не вижу, где это произойдет, и запуск Insruments с включенным NSZombie ничего не вызывает.

ЛюбойИдея, почему эта ошибка происходит?

Большое спасибо.

Ответы [ 2 ]

1 голос
/ 29 ноября 2011

Я нашел проблему здесь, мой метод инициализации просто не делал

return self;

следовательно, объект не был доступен. Тупая ошибка.

0 голосов
/ 28 ноября 2011

Убедитесь, что вы выполняете эту работу в главном потоке

...