这是代码的一小部分:
@interface
BOOL isCarryingmallet;
@implementation
-(BOOL)isCarryingWeapon {
return isCarryingMallet;
}
-(int)getWeaponDamage {
if (isCarryingMallet)
return kVikingMalletDamage;
else
return kVikingFistDamage;
}
我不明白这是怎么回事。 return isCarryingmMallet;
返回 YES 还是 NO?为什么在 if (isCarryingMallet)
中没有 == YES
?为什么是 if (isCarryingMallet)
而不是 if (isCarryingWeapon)
。
感谢您回答我的新问题!
最佳答案
isCarryingWeapon
方法返回 isCarryingMallet
变量的值。如果还有其他可能的武器,该方法可以返回更复杂的值,例如 (isCarryingMallet || isCarryingPlasmaCannon)
。基本上现在对这个类唯一重要的武器是木槌。当 isCarryingWeapon
方法被调用时,这个类对自己说,“我携带的是木槌吗?”如果是这样,它就知道它携带了武器,所以它返回真值——“是的,我有武器。”否则返回 false。
至于 if
问题 - 所有 if
语句所做的是确定括号中的值是真还是假。相等语句在 if 语句中很常见,但它们根本不是必需的。更具体地说,任何不是 0、null 或 nil 的东西都是真的。所以下面会全部执行花括号中的代码:
if (1) {...}
if (37) {...}
if (YES) {...}
if (true) {...}
boolean 变量通常以前缀 is
命名,这样就具有自然的语法意义。在你的情况下,你可以解析
if (isCarryingMallet) {...}
作为
If this guy is carrying a mallet, then...
关于objective-c - 在 Objective-C 方法中引用 BOOL 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6850836/