我正在学习如何使用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不会触发任何内容。
知道为什么会出现这种错误吗?
非常感谢。
答案 0 :(得分:1)
我在这里发现了问题,我的init方法根本就没有做
return self;
因此该对象不可用。愚蠢的错误。
答案 1 :(得分:0)
确保你在主线程上做这项工作