虽然这可能是一个完整的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编译器。
答案 0 :(得分:1)
确保
isFemale
已正确合成。请注意,is
关键字是一个Objective-C 标准约定(如@property (nonatomic, getter=isFemale) BOOL female
中所述)。如有疑问,请尝试其他属性名称,例如femaleGender
。
Office
属性currentEmployee
的类型为Employee
,并且调用类知道Employee
属性(`#include“Employee.h “)。