2011-10-24 63 views
0

Xcode分析抱怨說我錯誤地減少了用戶名的引用計數。Xcode分析和我是否應該發佈保留的IBOutlet?

以下是聲明:

@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]; 
} 

回答

3

一般來說,你不這樣做

[self.username release]; 

但無論哪種

self.username = nil; 

[username release]; 

我不知道這會導致它雖然抱怨這樣的,尤其因爲你這樣做是爲了所有的屬性。

+0

@logancautrell:它可能是OP與ARC的項目。在這種情況下,你會因爲本地引用計數只有1而錯誤地減少一個對象的引用計數(因爲擁有引用的'release'代碼會在編譯時自動插入,所以你最終會得到2在代碼中發佈)。 – darvids0n

0

對於您的viewControllers,您應該確保您將您的IBOutlet設置爲無viewDidUnload,因爲viewDidLoad和viewDidUnload方法可能在視圖控制器的生命週期中被多次調用。

你應該使用這樣的:

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

-(void)dealloc{ 
    [username release]; 
    [super dealloc]; 
} 
相關問題