1

私のコードでは、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]; 
} 

関数の 1 つでNSLog(@"User Email: %@",[userEmail text]);、キーボードが初めて表示されたときにメモリ リークが発生します UITextFieldDelegate を実装していますか? ありがとう

4

4 に答える 4

2

iPhone シミュレーターにバグがあることを考慮してください。XIB に UITextField のみを配置し、コードを何も配置しない、ほとんど空のプロジェクトを作成すると、UITextField をタップするとリークが発生します。逆に、デバイス上でビルドして実行しようとすると、リークは発生しません。だからそれはあなたの場合かもしれません!! 試してみて、お知らせください..

于 2010-09-13T14:37:32.883 に答える
1

問題の 1 つは、dealloc メソッドに MANDATORY [super dealloc] 行がないことです。

- (void)dealloc 
{ 
  [userEmail release];
  [super dealloc]; 
} 
于 2009-11-07T06:36:16.200 に答える
0

私はあなたが正しいカプロスキーだと思います。非常に単純なテスト プロジェクトを使用して、監視ツール -> リークで実行しました。UITextField をクリックするとすぐに、メモリ リークが継続的に発生します。

今はこれを忘れて、次回 UITextField を使用するときに覚えておきます (いいえ

于 2010-10-27T15:55:15.573 に答える
0

IBOutlet を 2 回定義する必要はありません。どちらかが行う必要があります。

UITextField *userEmail; 

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

あなたのコードには、問題を引き起こす可能性のあるものは他にありません。@implementation ファイルには他にどのような方法がありますか。

于 2009-11-07T04:04:55.543 に答える