繁体   English   中英

可可代码中的内存泄漏

[英]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”,所以我认为我很清楚。

希望有人可以阐明我的问题。 谢谢! 干杯,特隆

在此处输入图片说明

请注意,在客观命名规则下,假定以单词newcopy开头的方法将返回调用者拥有的对象。 如果对[self newDirectory]返回了自动释放的对象,请尝试重命名该对象,这样它就不会以new开头。

这里有一个很好的答案可以解释更多信息: 语义问题:属性的合成吸气剂遵循可可命名约定返回“拥有的”对象

建议是像这样更改属性上的getter名称:

@property (strong, nonatomic, getter=theNewDirectory) NSString *newDirectory;

或称它为: directoryToBeCreated

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM