Objective c 使用;“等质量”;比较布尔类型的步骤

Objective c 使用;“等质量”;比较布尔类型的步骤,objective-c,Objective C,如何将布尔返回soap与布尔值(如“false”)进行比较。我试过这些: if ([id isEqual:false]){ [self ShowMsg]; } 还是这个 if ([id isEqualToValue:false]) { [self ShowMsg]; } if (id == false){ [self ShowMsg]; } 还是这个 if ([id isEqualToValue:false]) {

如何将布尔返回soap与布尔值(如“false”)进行比较。我试过这些:

if ([id isEqual:false]){
        [self ShowMsg];
    }
还是这个

if ([id isEqualToValue:false]) {
        [self ShowMsg];
    }
if (id == false){  
        [self ShowMsg];
    }
还是这个

if ([id isEqualToValue:false]) {
        [self ShowMsg];
    }
if (id == false){  
        [self ShowMsg];
    }
“id”信息来自Soap请求,例如:

SoapRequest* _request = [SoapRequest create: _target action: _action service: self soapAction: @"http://tempuri.org/MyClass" postData: _envelope deserializeTo: @"Boolean"];
然而,当我进行这些比较时,它们无论如何都不起作用


谢谢。

布尔值是原始值。在目标C中,它有是和否。 如果您想比较中的布尔值,那么对于真实条件,您的代码应该是

if ([yourServerBoolValue boolValue]){ //Compiler understand  [yourServerBoolValue boolValue] == YES
        [self ShowMsg];
}
用于检查否/错误条件

if (![yourServerBoolValue boolValue]){ //Compiler understand  [yourServerBoolValue boolValue] == NO
            [self ShowMsg];
    }

布尔在Obj-C中是基本的,要比较它们,只需使用
=
运算符或
=运算符,以下是一些示例:

if(booleanName == YES)
{
     //Do something, the boolean is true
}

if(booleanName != YES)
{
     //Do something, the boolean is false
}

SoapRequest
类是什么样子的?另外,不要使用
==
=使用布尔常量…在Objective-C代码中实际上没有名为
id
的变量,是吗?那还可以编译吗<代码>id
是Objective-C中的一种类型。感谢您的回复。不,我像一个例子一样使用了“id”,但是变量的名称是另一个。id是一个关键字(通用数据类型),您不能将变量名称作为id。我尝试过使用这个例子,但它没有编译,错误是“不允许使用ARC将int隐式转换为id”。我从我的soap web服务收到的返回是@“false”…这是完整的一个:-(void)ExampleHandler:(id)returno{if(returno!=YES){[self ShowMsg];}}感谢您的回复。它不起作用。这是完整的类:-(void)ExampleHandler:(id)returno{if(![returno YES]){[self ShowMsg];}}您的代码与@Reformer的答案不同。请尝试
if(![retrono boolValue])…
。我已经尝试过了,但错误是:“预期标识符”:if(![retrono YES]){[self exibealertadeemailjacadstrado];}或:if(![retrono true]){[self exibealertadeemailjacadstrado];}非常抱歉!好了,现在我有主意了!完美的它已经奏效了。即使我将返回请求设置为“NSString”。。。非常感谢。