小编Rev*_*ect的帖子

Objective-C属性Getter/Setter崩溃EXC_BAD_ACCESS

我想知道为什么为另一个类中的属性赋值会导致EXC_BAD_ACCESS.我似乎无法弄清楚为什么.

1.)发送到setter的值是非零的; 2.)当尝试分配值时,EXC_BAD_ACCESS发生,变量为nil;

在Cocoa和Cocoa Touch应用程序中使用这种模式都会导致EXC_BAD_ACCESS,所以我不认为它是平台,但我相信这是我正在使用的模式.

我的问题是,是在分配变量时,还是我创建属性的方式?

我创建了一个虚拟项目,如下图所示.

任何帮助表示赞赏.

在此输入图像描述

在此输入图像描述

编辑:做一些挖掘,我将setter的变量(不是属性名称)的名称更改为firstName__.基本上,setFirstName的setter中的代码:

- (void)setFirstName:(NSString *)firstName__
{
    self.firstName = firstName__;
}
Run Code Online (Sandbox Code Playgroud)

这样做可以通过说firstName__(而不是self.firstName)等于nil来清除一点混乱,即使在AppDelegate中,该值也是非零的.

crash null cocoa properties objective-c

6
推荐指数
1
解决办法
2743
查看次数

标签 统计

cocoa ×1

crash ×1

null ×1

objective-c ×1

properties ×1