2017-02-28 31 views
1

我有正被设置为nil的类的属性,我不知道发生了什么这样做。我已经在它上面设置了一个符号断点(观察点),但它并没有捕捉到它,并且我也在设置器中设置了典型的断点,但这并没有抓住它。物业神秘设为零背着我

什么activeTextField财产的目的是什么? 当用户开始在一个字段中输入数据时,如果该字段将被显示的键盘阻挡,我将屏幕向上滑动以显示该字段。

所以东西的textFieldDidBeginEditing点之间发生的设定值,并正在显示的键盘,这是字面上每次一个又一个的权利,并在keyboardWasShown,我activeTextField =零。

我怎样才能找到故障原因被设置为nil?

@property (nonatomic, retain) UITextField *activeTextField; 

-(void)setActiveTextField:(UITextField *)activeTextField 
    { 
     _activeTextField = activeTextField; 
    } 


-(void)textFieldDidBeginEditing:(UITextField *)textField 
    { 
     self.activeTextField = textField; 
    } 



-(void)textFieldDidEndEditing:(UITextField *)textField 
    { 
     self.activeTextField = nil; 
    } 



-(void)keyboardWasShown:(NSNotification *)aNotification 
    { 
     if (self.activeTextField == nil) 
      { 
       return; 
      } 
+0

你确定textFieldDidEndEditing没有被调用吗? –

+0

您是否确认keybaordWasShown和textFieldDidBeginEditing正在同一个线程上执行? –

+0

NSLog在textFieldDidEndEditing看看是否被调用。很确定这是一个。 – GeneCode

回答

0

哑程序员错误。我有两个类从我上面发布的代码继承而来,它们名称几乎相同,一个注册了键盘通知,另一个不是,这导致我的结果如此混乱。

+2

我在座位的边缘......! – matt