Ios4 用下划线命名IVAR,实际含义是什么

Ios4 用下划线命名IVAR,实际含义是什么,ios4,xcode4,Ios4,Xcode4,我已经阅读了所有关于stackoverflow和其他地方的帖子。我知道下划线约定的目的是区分ivar本身的使用和它的属性,但是如果对变量名很小心,我不确定实际的区别是什么。我有两个问题 是否有一个地方我不能使用访问器,而必须使用_var? 换句话说,是否有一个地方我不能使用: self.var [自我变量] self.var=foo [自我设置变量:foo] 第二,有人能描述一种不使用下划线约定会给我带来麻烦的情况吗?否则,下划线约定会让我置身其中 如果这个问题在别处得到了回答,我很抱歉;我没有

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

是否有一个地方我不能使用访问器,而必须使用_var? 换句话说,是否有一个地方我不能使用: self.var [自我变量] self.var=foo [自我设置变量:foo]

第二,有人能描述一种不使用下划线约定会给我带来麻烦的情况吗?否则,下划线约定会让我置身其中


如果这个问题在别处得到了回答,我很抱歉;我没有找到它或者我不理解它

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

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