当我构建和分析时,我在这一点上有潜在的泄漏

时间:2011-03-01 05:23:03

标签: iphone

(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {    


    [self.window addSubview:rootController.view];
    [self.window makeKeyAndVisible];



    [[controlfile alloc]scedule1];   
    return YES;
}

当我构建& amp;时,我在[[controlfile alloc] scedule1]上分配了一个对象的潜在泄漏。分析

1 个答案:

答案 0 :(得分:7)

[[controlfile alloc]scedule1];

这是分配类controlfile的实例,然后在分配的对象上调用scedule1。 (请注意,它尚未初始化;您应该首先通过调用init来初始化它)。然后再次引用对象(您分配的对象)。因此,你已经泄露了它。

你真的需要做这样的事情:

id controlfile = [[ControlFile alloc] init];
[controlfile scedule1];
[controlfile release];

这假设ControlFile是一个类。如果它是一个实例变量(由全部小写文本表示并且代码中没有声明),那么你想要这个:

controlfile = [[WhateverTheDeclaredClassOfControlFileIs alloc] init];
[controlfile scedule1];

// In the -dealloc method, call this:
[controlfile release];

对于alloc的每次通话,您必须在完成对象后拨打releaseautorelease。你不是在这里做的,因此你泄露了这个对象。