1

虽然这可能是一个完全 n00b 的问题,但我以前从未遇到过这样的情况,有点惊呆了。
我有一些Objective C 类,每个类都声明了一些属性。所有属性都已正确声明和合成。

简化后,结构看起来像:

CompanyData - hasA - DepartmentInfo - hasA - Office - hasA - Employee - hasA - isFemale(BOOL)

如果我写这样的东西:

companyData.departmentInfo.office.currentEmployee.isFemale = YES;

我的代码无法编译,并且"Segmentation fault: 11"出现错误。

但是,如果我写:

Employee *currentEmployee = companyData.departmentInfo.office.currentEmployee;
currentEmployee.isFemale = YES;

一切都编译得很好。为什么?我在这里想念什么?

我正在使用 XCode 4.5 和 LLVM GCC 4.2 编译器。

4

1 回答 1

1

确保

  1. isFemale是正确合成的。请注意,is关键字是一个 Objective-C标准约定(如@property (nonatomic, getter=isFemale) BOOL female)。如果有疑问,请尝试其他属性名称,例如femaleGender.

  2. 属性是类型并且调用类知道属性(` Office#include "Employee.h")。currentEmployeeEmployeeEmployee

于 2013-06-28T09:19:41.620 回答