Xcode分析以及我是否应该发布保留的IBOutlet?

时间:2011-10-24 22:26:12

标签: objective-c

Xcode Analyze抱怨我错误地减少了用户名的引用计数。

以下是声明:

@property (nonatomic, retain) UITextField *username;
@property (nonatomic, retain) UITextField *password;
@property (nonatomic, retain) UIButton *login;

这是dealloc:

- (void)dealloc
{
    [self.username release];
    [self.password release];
    [self.login release];
    [super dealloc];
}

2 个答案:

答案 0 :(得分:3)

一般情况下你不做

[self.username release];

但是

self.username = nil;

[username release];

我不确定这是否会导致它像这样抱怨,尤其是因为你正在为你的所有财产做这件事。

答案 1 :(得分:0)

对于viewControllers,您应该确保在viewDidUnload中将IBOutlet设置为nil,因为viewDidLoad和viewDidUnload方法可能在视图控制器的生命周期中被多次调用。

你应该使用这个:

-(void)viewDidUnload{
    self.username=nil;
}

-(void)dealloc{
    [username release];
    [super dealloc];
}