Ошибка: NSCFData resignFirstResponder - нераспознанный селектор отправлен на экземпляр.Но почему? - PullRequest
0 голосов
/ 06 июля 2011

Я получаю NSCFData resignFirstResponder - нераспознанный селектор, отправленный экземпляру.Но почему?

@interface { UITextField *Field; } @end
@implementation
-(BOOL) textFieldShouldBeginEditing:(UITextField*)textField {
    Field = textField;
    return YES;
}

-(void) viewWillDisappear:(BOOL)animated
{
    [Field resignFirstResponder];
}
@end

мой стек вызовов

0   CoreFoundation                      0x35f08c7b __exceptionPreprocess + 114
1874            1   libobjc.A.dylib                     0x30186ee8 objc_exception_throw + 40
1875            2   CoreFoundation                      0x35f0a3e3 -[NSObject(NSObject) doesNotRecognizeSelector:] + 98
1876            3   CoreFoundation                      0x35eaf467 ___forwarding___ + 506
1877            4   CoreFoundation                      0x35eaf220 _CF_forwarding_prep_0 + 48
1878            5   MegaDish                         0x000187eb -[MapViewController viewWillDisappear:] + 34
1879            6   UIKit                               0x3389d438 -[UINavigationController viewWillDisappear:] + 112

Ответы [ 3 ]

2 голосов
/ 06 июля 2011

Ваше текстовое поле освобождено, вероятно, в -viewDidUnload. Затем объект NSData был размещен в том же месте в памяти. Выполните -textFieldDidEndEditing: и очистите Field ivar до nil, и проблема должна быть решена.

1 голос
/ 06 июля 2011

Альтернатива ответу @ Jonathan - сохранить текстовое поле, когда вы вступите во владение им, и освободить его, когда закончите.

также примечание: переменные в target-c обычно начинаются со строчной буквы.Имена классов начинаются с заглавных букв.

1 голос
/ 06 июля 2011

Предположительно, вам нужно сохранить поле.

...