用下划线命名ivars,实际意义是什么

时间:2011-09-03 20:17:09

标签: ios4 xcode4

我已经阅读了所有可以在stackoverflow和其他地方找到的帖子。我理解下划线约定的目的是区分ivar本身的使用和它的属性,但如果一个人对变量名称小心,我不确定实际差异是什么。我有两个问题。

是否有一个我无法使用访问者的地方,并且来使用_var? 换句话说,有一个我不能使用的地方: self.var [self var] self.var=foo [self setVar:foo]

第二,有人可以描述一种情况,使用下划线约定会让我遇到麻烦,但是下划线约定会让我不能参与?

如果这个问题在其他地方得到解答,我很抱歉;我没有找到它或者我不理解它!

1 个答案:

答案 0 :(得分:0)

好吧,对某些人来说是合法的,而不是对其他人来说,你可以做这样的事情

-(void) setAlive:(BOOL) isItOrNot {

    if(isItOrNot) {
        [self setHPs:self.characterClass.baseHPs];
        [self.army addCharacterWithKey:self.key];
    } else {
        [self setHPs:0];
        [self.army removeCharacterWithKey:self.key];
    }

    alive_=isItOrNot;

}

-(BOOL) alive {
    return alive_;
}

作为示例...如果您为保留的iVar执行此操作,请小心处理参数等于当前iVar的条件:)