为了提高效率,我想访问与子类中的属性关联的成员变量。如果我有一个声明如下的财产:
@interface Mumbo : NSObject
@property (nonatomic) GLKVector3 position;
@end
在 Mumbo 的实现中,我可以将位置引用为 self.position 或直接引用为 _position (默认的合成成员变量 - 我没有使用 @synthesize)。在某些情况下,我使用后者是为了提高效率,以避免复制结构。
但是,在子类中我无法引用 _position ,除非我将接口更改为
@interface Mumbo : NSObject {
GLKVector3 _position;
}
@property (nonatomic) GLKVector3 position;
@end
这似乎有效。但是,我能否保证自动合成的成员变量与我在大括号中显式声明的成员变量一致?我找不到关于该主题的任何明确的文档。
自动合成的变量默认使用前导下划线,所以你就在那里。
但是你声明 iVar 的方式 - 使其公开,但自动合成的变量是私有的。这就是为什么您可以从课堂外访问它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)