2011-09-03 36 views
0

我已经阅读了所有可以在stackoverflow和其他地方找到的帖子。我明白,下划线公约的目的是区分使用伊娃本身和它的财产,但如果人们对变量名称很谨慎,我不确定实际区别是什么。我有两个问题。用下划线命名ivars,具体含义

是否有一个地方,我不能使用访问器和使用_var? 换句话说,就是有,我不能用的地方: self.var [self var] self.var=foo [self setVar:foo]

其次,可能有人使用下划线公约将我惹麻烦描述的情况下,该下划线约定,否则继续我退出了吗?

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

回答

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_; 
} 

作为一个例子......如果你这样做了,你保留的ivars,办理条件,其中的参数是等于目前的iVar仔细:)