Xcode/Instruments/Leaks:它可以在明显没有泄漏的地方显示一条红线吗?
Posted
技术标签:
【中文标题】Xcode/Instruments/Leaks:它可以在明显没有泄漏的地方显示一条红线吗?【英文标题】:Xcode/Instruments/Leaks: can it show a red line where apparently there is no leak? 【发布时间】:2012-02-21 02:35:01 【问题描述】:程序所做的只是分配一个对象然后释放它。
我是 Instruments 的新手,所以我不确定自己是否正确:
红线表明我分配该对象的位置存在泄漏。但是在细节上你可以看到它被释放了,引用计数又回到了 0。那么为什么首先会有一条红线,它到底告诉我什么?
编辑:这是检测到的“泄漏”。我的 UIViewController 中的代码:
- (void)viewDidLoad
[super viewDidLoad];
Plant *plant = [[Plant alloc] initWithWeight:3 withSpecies:@"carrot"];
[plant release];
【问题讨论】:
能否也添加程序的源代码? 那里。我认为没有必要发布 Plant 的来源,因为这里报告了泄漏。initWithWeight:withSpecies:
是否在任何地方存储 self
?它会创建任何块吗?它是否将self
作为参数传递给任何函数或消息?
不,但是在查看代码以确保时,我发现了故障。请参阅下面的答案。谢谢!
【参考方案1】:
如果你有一个 Plant 类型的 @property。
那么这个泄漏可以用
来解释self.plant = someobject //some object retained. /(using setter)
plant = someother object // previous value in self.plant leaked
-(void) dealloc
[plant release];
[super dealloc];
【讨论】:
【参考方案2】:我找到了。
该类有一个最后没有调用 [super dealloc] 的 dealloc 方法。
【讨论】:
以上是关于Xcode/Instruments/Leaks:它可以在明显没有泄漏的地方显示一条红线吗?的主要内容,如果未能解决你的问题,请参考以下文章
VS 19 - 当我初始化一个变量时,它突然“重新格式化”它,我该如何关闭它?
MATLAB。写入文本文件或创建它,如果它不存在。将图形保存在目录中,如果不存在则创建它
ggplot 如果它在 for 循环内则不起作用,尽管它在它之外工作 [重复]