添加子视图然后释放它:“修改正在最终确定的视图”

时间:2010-07-09 13:27:49

标签: iphone memory-management uiview

我有一个名为tagButton的UIButton和一个名为tagsView的UIScrollView。

在我的-(void)renderTags方法中,我做

[[self.tagsView subviews] makeObjectsPerformSelector:@selector(removeFromSuperview)];

...清除甲板,然后我走过一对名为allTagsactiveTags的阵列,交替为用户使用的每个标签创建“点亮”和“不点亮”按钮在应用程序中。到现在为止还挺好。但是当我将新创建的UIButton添加到我的视图中时,就这样:

[self.tagsView addSubview:tagButton];
[tagButton release];

...第一次,视图上没有任何反应,标签按钮不显示。第二次我将相同的字符串放入(触发-toggleTag而不是-createTag,但最终在同一个渲染方法中),我收到控制台消息modifying layer that is being finalized = 0x82b3ec0

如果我发表评论[tagButton release],一切正常。那么,是什么给出的?我认为在superview中添加子视图会使superview保留它。我不打算再次处理这个按钮,除非告诉它在我下次渲染我的标签列表时将其自行删除,所以看起来视图控制器应该释放它。

1 个答案:

答案 0 :(得分:1)

你的问题可能是你没有开始使用标签Button,因此没有必要发布它...希望有帮助