2009-11-07 3 views
1

В моем коде происходит утечка памяти, когда клавиатура появляется в первый раз, когда я собираюсь ввести значения в UITextField. Может кто-то, пожалуйста, дайте мне некоторое представление об этом.UITextField Memory Leak

В файле интерфейса

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

В одной из функций NSLog(@"User Email: %@",[userEmail text]); Утечка памяти происходит, когда появляется клавиатура впервые ли я реализовать UITextFieldDelegate? Спасибо

+1

Как всегда, показывают свой код, пожалуйста –

+0

В файле интерфейса IBOutlet UITextField * USEREMAIL;. @property (неатомической, сохраняют) IBOutlet UITextField * USEREMAIL; файла Реализация @synthesize USEREMAIL; - (недействительными) dealloc { [USEREMAIL релиз]; } - (недействительными) viewDidUnload { \t self.userEmail = nil; } - (IBAction) emailOver: (id) отправитель { \t [отправитель resignFirstResponder]; } В одной из функций NSLog (@ «Электронная почта пользователя:% @», [текст пользовательского Email]); Утечка памяти возникает, когда клавиатура появляется в первый раз У меня есть UITextFieldDelegate? Thanks – felix

+1

Стив, вы должны отредактировать свое оригинальное сообщение вместо этого. Ввод кода в комментарий делает его очень трудным для чтения. –

ответ

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 в XIB, и никакого кода, вы не будете иметь утечку, когда вы нажмете на UITextField. Напротив, если вы попытаетесь создать и запустить на устройстве, у вас не будет утечки. Так что это может быть ваш случай !! Попробуйте, дайте нам знать ..

0

Я думаю, что вы правы, капрайский. Используя очень простой тестовый проект, я запускаю средства мониторинга -> Утечки, и как только я нажимаю на UITextField, происходит утечка памяти, которая постоянно растет.

Я забуду сейчас и держать его в виду следующий раз, когда я использую UITextField (не