在iphone中使用自定义init方法-识别泄漏

在iphone中使用自定义init方法-识别泄漏,iphone,memory-leaks,init,Iphone,Memory Leaks,Init,对于我的一个自定义类,我定义了一个名为initialize的方法,以在初始化的同时设置一些实例变量。代码如下。analyzer工具正在使用[[Employee alloc]报告线路上viewDidLoad中的泄漏。。 因为我在dealloc中释放了变量,所以我认为这应该没问题。可能是什么问题呢?提前谢谢 @interface testViewController : UIViewController <UITextFieldDelegate>{ Employee *emplo

对于我的一个自定义类,我定义了一个名为initialize的方法,以在初始化的同时设置一些实例变量。代码如下。analyzer工具正在使用[[Employee alloc]报告线路上viewDidLoad中的泄漏。。 因为我在dealloc中释放了变量,所以我认为这应该没问题。可能是什么问题呢?提前谢谢

@interface testViewController : UIViewController <UITextFieldDelegate>{
    Employee *employee;
}
- (void)viewDidLoad {  
if(employee ==nil) 
   employee = [[Employee alloc] initialize:@"John"];    

if (![employee.entityName isEqualToString:@"Test"]) { //The leak is reported here for object allocated above
    ///...
}

}

- (void)viewDidUnload {
    [super viewDidUnload];
    employee = nil;
}

- (void)dealloc {
    [super dealloc];
  [employee release];

}

//In the Employee class
-(id) initialize:(NSString*) name{
    self = [super init];

    self.entityName = name;


    return self;
}
@接口testViewController:UIViewController{
雇员*雇员;
}
-(void)viewDidLoad{
如果(雇员==零)
employee=[[employee alloc]初始化:@“John”];
如果(![employee.entityName IsequalString:@“Test”]){//,则会在此处为上面分配的对象报告泄漏
///...
}
}
-(无效)视图卸载{
[超级视频下载];
雇员=零;
}
-(无效)解除锁定{
[super dealoc];
[雇员释放];
}
//在雇员阶级
-(id)初始化:(NSString*)名称{
self=[super init];
self.entityName=名称;
回归自我;
}

在您的
视图didunload
中,您需要在员工设置为
nil
之前
释放员工。否则在
dealloc
中,您只需释放
nil


您好,谢谢,但我仍然无法清除报告的泄漏。不知道为什么:(
- (void)viewDidUnload {
    [super viewDidUnload];
    [employee release];
    employee = nil;
}