Iphone - 类属性导致崩溃

发布于 2024-09-11 07:25:16 字数 594 浏览 4 评论 0原文

所以我对整个目标 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 声明为属性(意味着添加属性、合成和所有处理),那么当我要离开视图(这是一个基于导航的项目),我的应用程序崩溃了。然而,如果我把它当作非财产来生活,一切似乎都运转良好。这是为什么 ???

So I'm still very new to this whole objective C think and I ran into a problem I'm not sure the root cause for.

My h file looks basically like this :

@interface DrinkDetailViewController : UIViewController<UITextFieldDelegate>
{
    UITextField* nameTextField;
    UITextField* activeView;
}
@property (nonatomic,retain) IBOutlet UITextField* nameTextField;

In my m file i'm implementing the delegate function :

-(BOOL) textFieldShouldBeginEditing:(UITextField*) textField
{
    activeView = textField;
    return YES;
}

The thing is that if i'm declaring activeView to be a property as well (meaning adding property, synthesize and the all deal), then when i'm leaving the view (it's a navigation based project) my app crashes. However, if I live it as a non property everything seems to work fine. Why is that ???

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

别想她 2024-09-18 07:25:17

因为它是一个属性,所以您需要这样调用它:

self.activeView = textField;

这样将应用正确的内存管理规则,并且将为您完成 KVO 通知。

because it's a property you need to call it this way:

self.activeView = textField;

That way the correct memory management rules will be applied and also the KVO notifications will be done for you.

财迷小姐 2024-09-18 07:25:17

您是否在实现文件中合成了 activeView:

@synthesize activeView;

are you synthesing activeView in your implementation file:

@synthesize activeView;
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文