我构建了一个iPhone应用程序,并注意到XCode中有分析工具。
我有这个代码:
View * view = [[View alloc]initWithFrame:self.view.frame title:currentItem.name id:currentItem.idStr];
self.menuView = [[MenuView alloc]init];
self.menuView.contentView = view;
[view release];
和
View
属性:@property (retain,nonatomic) MenuView * menuView;
当我对项目进行分析时,我会收到此潜在的泄漏警告。
我想知道是否还可以,但分析只是警告我?还是我的代码有误。
编辑
如果我做这样的事情:
@property (retain, nonatomic) IBOutlet UISlider *progressSlider;
。
self.progressSlider = [[[UISlider alloc]initWithFrame:CGRectMake(58, 12, 191, 23)]autorealese];
[view addSubview:self.progressSlider];
并在dealloc中:
[progressSlider realese];
这也是我的灵魂吗?还是错了?
最佳答案
如果保留属性,则应在dealloc方法中向其发送释放消息:
- (void)dealloc {
[menuView release];
[super dealloc];
}
另外,当您分配menuView属性时,您将进行分配/初始化。 init方法为您提供一个保留计数。设置该属性后,保留数为2。您应该具有匹配的发行版数量。您的设置代码应如下所示:
MenuView *m = [[MenuView alloc] init];
self.menuView = m;
[m release];