【问题标题】:naming ivars with underscore, what is the practical implication用下划线命名 ivars,有什么实际含义
【发布时间】:2011-09-03 20:17:08
【问题描述】:

我已经阅读了我可以在 stackoverflow 和其他地方找到的所有关于此的帖子。我知道下划线约定的目的是区分 ivar 本身及其属性的使用,但是如果对变量名很小心,我不确定实际的区别是什么。我有两个问题。

是否有一个地方我不能使用访问器并且可以使用 _var? 也就是说,有没有我不能用的地方: self.var [self var] self.var=foo [self setVar:foo]

其次,有人可以描述一种情况,即使用下划线约定会给我带来麻烦,否则下划线约定会让我远离?

如果这个问题在其他地方得到回答,我很抱歉;没找到或者没看懂!

【问题讨论】:

    标签: ios4 xcode4


    【解决方案1】:

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

    -(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 的条件:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-04-02
      • 2016-10-26
      • 1970-01-01
      • 2018-04-18
      • 2013-04-30
      • 1970-01-01
      • 1970-01-01
      • 2011-09-02
      相关资源
      最近更新 更多