EXC_BAD_ACCESS错误但没有触发僵尸

时间:2011-11-27 20:01:02

标签: ios xcode ipad exc-bad-access

我正在学习如何使用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,这会触发该错误,但我无法看到它会发生在哪里,并且启用NSZombie的runnign Insruments不会触发任何内容。

知道为什么会出现这种错误吗?

非常感谢。

2 个答案:

答案 0 :(得分:1)

我在这里发现了问题,我的init方法根本就没有做

return self;

因此该对象不可用。愚蠢的错误。

答案 1 :(得分:0)

确保你在主线程上做这项工作