所以我对这个目标仍然很陌生C认为我遇到了一个问题,我不确定其根本原因。
我的h文件看起来基本上是这样的:
@interface DrinkDetailViewController : UIViewController<UITextFieldDelegate>
{
UITextField* nameTextField;
UITextField* activeView;
}
@property (nonatomic,retain) IBOutlet UITextField* nameTextField;
在我的m文件中,我正在实现委托功能:
-(BOOL) textFieldShouldBeginEditing:(UITextField*) textField
{
activeView = textField;
return YES;
}
问题是如果我宣布activeView也是一个属性(意味着添加属性,合成和所有交易),那么当我离开视图(这是一个基于导航的项目)时,我的应用程序崩溃了。但是,如果我把它作为非财产生活,一切似乎都可以。为什么??? ???
答案 0 :(得分:1)
因为这是一个你需要这样称呼它的属性:
self.activeView = textField;
这样就会应用正确的内存管理规则,并且还会为您完成KVO通知。
答案 1 :(得分:1)
您是在实现文件中合成activeView:
@synthesize activeView;