gpt4 book ai didi

ios - XCode 4.5 分析工具

转载 作者:行者123 更新时间:2023-11-28 18:01:52 25 4
gpt4 key购买 nike

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

这也是我应该做的吗?还是错了?

最佳答案

您正在泄漏 self.menuView,因为该属性被指定为 retain。当您在一个对象上调用 alloc 时,它的保留计数设置为 1。当属性被分配时,它增加到两个,没有平衡调用来平衡它..

最简单的修复方法是调用 -autorelease,如下所示:

self.menuView = [[[MenuView alloc] init] autorelease];

通过您的编辑,是的,该代码表面上看起来是正确的。我真正的问题归结为为什么您仍在使用手动引用计数?是的——从表面上看这是一件好事,但苹果已经大大贬低了它,转而支持更新的 ARC。

关于ios - XCode 4.5 分析工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14380490/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com