Objective c 访问超类的实例变量,正确的形式

Objective c 访问超类的实例变量,正确的形式,objective-c,Objective C,我对objective-c和编程非常陌生。我在stackoverflow上发布的关于objective-c的一个问题中读到,直接访问超类的实例变量是“糟糕的形式”。下面是一个示例,说明了我认为直接从超类访问实例变量意味着什么(示例1),以及使用正确的形式意味着什么(示例2): 如果这个问题无关紧要或者我没有道理,我会道歉。另外,如果我误解了访问超类的实例变量时使用错误的形式可能意味着什么,我表示歉意。另外,如果已经有人问过这个问题(我找不到任何类似的问题),请道歉——如果有,链接到那个问题会很有

我对objective-c和编程非常陌生。我在stackoverflow上发布的关于objective-c的一个问题中读到,直接访问超类的实例变量是“糟糕的形式”。下面是一个示例,说明了我认为直接从超类访问实例变量意味着什么(示例1),以及使用正确的形式意味着什么(示例2):

如果这个问题无关紧要或者我没有道理,我会道歉。另外,如果我误解了访问超类的实例变量时使用错误的形式可能意味着什么,我表示歉意。另外,如果已经有人问过这个问题(我找不到任何类似的问题),请道歉——如果有,链接到那个问题会很有帮助。谢谢。

示例1很好
应从子类的
init
方法调用
[super init]

- (id) init {
    self = [super init];
    if (self) {
        // Init
    }
    return self;
}

我看不出使用示例2的任何原因。例1是再见,谢谢。是否有任何例子表明,在访问超类实例变量的方式中,它可能被视为不正确的形式?如果从子类访问ivar不正确,那么它应该受到
@private
的保护,那么您就不能再从子类访问ivar了
- (id) init {
    self = [super init];
    if (self) {
        // Init
    }
    return self;
}