[英]Memory leak in cocoa code
我一直试图分析Xcode分析器(v4.2)为什么抱怨我的Objective-C代码泄漏内存。 我正在创建一个NSOperation:1)如果不存在则递归创建目录,2)将文件从一个目录复制到另一个目录中。
NSOperation初始化为:
- (id)initWithFullPathSource:(NSString *) mysource andFullPathCopy:(NSString *) mycopy andNewDirectory:(NSString *) mydir withMode:(NSString *) mymode withLR:(NSString *) LR
{
self = [super init];
if (self) {
[self setFullPathSource:mysource];
[self setFullPathCopy:mycopy];
[self setNewDirectory:mydir];
[self setMode:mymode];
[self setMyLR:LR];
}
return self;
}
附件是Xcode分析器如何查看我的代码的屏幕截图。 谁能帮我理解为什么我在这种情况下会泄漏内存吗? 我在主例程的结尾处发布了“ createComponents”和“ removeComponents”,所以我认为我很清楚。
希望有人可以阐明我的问题。 谢谢! 干杯,特隆
请注意,在客观命名规则下,假定以单词new
或copy
开头的方法将返回调用者拥有的对象。 如果对[self newDirectory]
返回了自动释放的对象,请尝试重命名该对象,这样它就不会以new开头。
这里有一个很好的答案可以解释更多信息: 语义问题:属性的合成吸气剂遵循可可命名约定返回“拥有的”对象
建议是像这样更改属性上的getter名称:
@property (strong, nonatomic, getter=theNewDirectory) NSString *newDirectory;
或称它为: directoryToBeCreated
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.