(BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
[self.window addSubview:rootController.view];
[self.window makeKeyAndVisible];
[[controlfile alloc]scedule1];
return YES;
}
当我构建& amp;时,我在[[controlfile alloc] scedule1]上分配了一个对象的潜在泄漏。分析
答案 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
的每次通话,您必须在完成对象后拨打release
或autorelease
。你不是在这里做的,因此你泄露了这个对象。