可可代码中的内存泄漏

Tro*_*sen 0 xcode cocoa objective-c

我试图分析为什么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;
}
Run Code Online (Sandbox Code Playgroud)

附件是Xcode分析器如何看到我的代码的屏幕截图.谁能帮助我理解为什么我在这种情况下泄漏记忆?我在主程序结束时发布'createComponents'和'removeComponents',所以我觉得我很清楚.

希望有人可以解决我的问题.谢谢!干杯,特隆德

在此输入图像描述

dan*_*ard 7

请注意,在目标c命名规则下,以单词开头newcopy假定返回调用者拥有的对象的方法.如果调用[self newDirectory]返回一个自动释放的对象,则尝试重命名它,使其不以new开头.

这里有一个很好的答案解释:语义问题:属性的合成getter遵循返回'拥有'对象的Cocoa命名约定

建议是更改属性上的getter的名称,如下所示:

@property (strong, nonatomic, getter=theNewDirectory) NSString *newDirectory;
Run Code Online (Sandbox Code Playgroud)

或称之为: directoryToBeCreated