我正在学习目标-c并且有些东西我无法找到答案。
我在类的公共接口中声明了一个属性。 在那个课程中,我可以使用下划线直接访问ivar,而无需合成属性。
例如:
// Class.h
@property (nonatomic, strong) NSString *someString;
// Class.m
_someString = something;
但是如果我将该类子类化,我可以在没有任何额外代码的情况下访问setter和getter,但是我无法直接访问ivar,除非我明确地合成了属性,这在超类中不是必需的步骤。
我知道它确实创建了特定于子类的ivars,因为我有2个相同超类的子类,并且每个子类都有自己的超类属性值。 我只是不明白为什么我需要明确地合成子类,如果我想直接访问ivars。
这不是一个真正的问题,而是更多的好奇心。