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