objective-c - 在 Objective-C 方法中引用 BOOL 值

标签 objective-c boolean

这是代码的一小部分:

@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/

相关文章:

java - SharedPreferences:为什么我的值没有被覆盖?

Python - Pandas - DataFrame - 根据条件将单列分解为多个 boolean 列

javascript - 如何在 JavaScript 中将字符串转换为 boolean 值

c++ - boolean 函数问题

iphone - 核心数据; cocoa 错误 134100

ios - NSLog内存地址

java - For循环,切换 boolean 值

ios - 是否可以在正常状态下在 TableView 中创建可移动行? (见附图)

objective-c - 我应该总是为失败的初始化方法释放 self 吗?

ios - "[CALayer renderInContext]"在 iPhone X 上崩溃