2013-01-23 28 views
1

如果我有我的XIB
喜欢的UILabel,的UIImageView等一些对象,但我不使用任何IBOutlet中连接它们
我引用这些对象,如遵循关于Interface Builder的组件释放

UILabel *label = (UILabel *)[[self.view subviews] objectAtIndex:x]; 
UIImageView *imageView = (UIImageView *)[[self.view subviews] objectAtIndex:x]; 

我是否需要释放此对象?

回答

0

不可以。如果你不调用retain,那么你不必释放它。

但是,您的方法非常糟糕。是否有任何理由阻止您创建IBOutlet连接?即使使用viewWithTag:也会做得更好。因为如果向nib添加新视图,很可能会混淆顺序,并且必须更改每个硬编码的索引值。

+0

如果u使用viewWithtag那么这将是强制性的,以对所有项目不同的标签在view.and因为他无处不在使用相同的标记,多数民众赞成X为标签和ImageView的它会崩溃的应用程序 – Dhara

+0

课程的标签必须是唯一的。但至少不会改变,如果你不小心点击了IB并修改了视图的顺序。 –

0

你应该释放所有你创建的对象。这是个好习惯。

否则你会得到内存问题。

1

如果你不保留这个对象,你不必释放它们。你只需要释放你创建的对象

0

,除非你的alloc,初始化你不应该释放它,保留,复制自己的对象。