2009-11-07 53 views
1

在我的代碼中,當我正要在UITextField中輸入值時,第一次出現鍵盤時會出現內存泄漏。有人可以給我一些關於這個的想法。UITextField內存泄漏

在接口文件

IBOutlet UITextField *userEmail; 

@property (nonatomic, retain) IBOutlet UITextField *userEmail; 

實現文件

@synthesize userEmail; 

- (void)dealloc 
{ 
    [userEmail release]; 
} 

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

-(IBAction) emailOver:(id)sender{ 
    [sender resignFirstResponder]; 
} 

在當鍵盤出現首次難道我實現UITextFieldDelegate NSLog(@"User Email: %@",[userEmail text]);發生內存泄漏的功能嗎?謝謝

+1

一如往常,顯示你的代碼,請 – 2009-11-07 01:16:02

+0

在接口文件 IBOutlet中的UITextField * USEREMAIL。 @屬性(非原子,保留)IBOutlet中的UITextField * USEREMAIL; 實現文件 @synthesize USEREMAIL; - (無效)的dealloc { [USEREMAIL釋放]; } - (無效)viewDidUnload { \t self.userEmail =零;(IBAction)emailOver:(id)sender { \t [sender resignFirstResponder];(IBAction)emailOver:(id)sender { \t [sender resignFirstResponder]; } 在函數之一 NSLog(@「User Email:%@」,[userEmail text]); 當鍵盤第一次出現時發生內存泄漏我是否實現了UITextFieldDelegate? 謝謝 – felix 2009-11-07 01:31:45

+1

史蒂夫,你應該編輯你原來的帖子。將代碼放在評論中使得閱讀非常困難。 – 2009-11-07 01:41:17

回答

0

你不需要IBOutlet定義兩次。一個或另一個應該做的。

UITextField *userEmail; 

@property (nonatomic, retain) IBOutlet UITextField *userEmail; 

我在代碼中看不到任何會導致問題的東西。您在@implementation文件中還有其他什麼方法。

1

一個問題是你的dealloc方法缺少了MANDATORY [super dealloc]行。

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

想想看,有一個在iPhone模擬器中的錯誤:如果你寫一個幾乎空白的項目,將只爲UITextField在廈門國際銀行,並沒有代碼,你將有一個泄漏,當你在的UITextField挖掘。相反,如果您嘗試在設備上構建並運行,則不會泄漏。所以這可能是你的情況!試試吧,讓我們知道..

0

我認爲你是正確的caprosky。使用一個非常簡單的測試項目,我已經運行監控工具 - >泄漏,一旦我點擊UITextField,就會有內存泄漏不斷上升。

我會忘記這一點,現在,我使用的UITextField下次記住它(無