帮助Objective-C BOOL方法

时间:2011-07-29 18:46:10

标签: objective-c if-statement boolean

  

可能重复:
  Help on Objective-C BOOL methods?

@interface

BOOL isCarryingmallet;

@implementation

-(BOOL)isCarryingWeapon {
   return isCarryingMallet;
}

-(int)getWeaponDamage {
    if (isCarryingMallet) 
        return kVikingMalletDamage;
    else
        return kVikingFistDamage;
}

我知道-(BOOL)isCarryingWeapon会返回isCarryingWeapon,但我不知道为什么这会有用。有人可以给我一个例子吗?

此外,continue;在if语句中做了什么?

谢谢!

3 个答案:

答案 0 :(得分:1)

-(BOOL)isCarryingWeapon实际上返回了一个bool。方法返回的类型是括号中指定的内容。例如(void)不是(NSString)字符串。

-(BOOL)isCarryingWeapon { return isCarryingMallet; }

实际上返回isCarryingMallet的值。因此,根据[myObject isCarryingWeapon]的值,调用isCarryingMallet会给您一个YES或NO。

继续在循环中使用,例如

for (item in items)
{
    if(item == NULL)
        continue;
    else
        break;
}

continue表示从循环开始处继续循环下一个项目。中断意味着停止循环。所以你可以在搜索循环中使用它们。如果该项目不是你想要的,你可以继续循环,如果你找到你想要的项目,你可以提前结束循环周期。

答案 1 :(得分:0)

从另一个类访问isCarryingMallet属性很有用。你也可以使用这样的访问器方法使属性独立于实际的BOOL变量,例如,如果你以后决定要将携带的武器存储在列表中,你仍然可以使用相同的方法确定该列表是否为空,并且不必更改任何依赖于该方法的外部代码。

continueif语句中不执行任何操作,但如果if语句不是循环的一部分,则会导致编译器错误。它继续在顶部的循环顶部执行,否则。

答案 2 :(得分:0)

if声明中,continue没有做任何事情。但如果if位于循环内(forwhiledo),那么continue会跳转到循环体的开头,就像它总是这样。

  

但我不知道为什么这很有用

这是数据隐藏的一个例子,恕我直言。该类的接口有一个isCarryingWeapon方法,欢迎类消费者调用。如果类实现在某一天延长以允许使用剑,则可以将[isCarryingWeapon]方法的内容更改为:

return isCarryingMallet || isCarryingSword;

并且来电者不会知道差异。