我构建了一个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];

10-07 18:34