如何在Objective-C中将NSStringparsing为BOOL?

我在Objective-C for iOS中进行编程。 我想将NSStringtypes的对象parsing为BOOLtypes的标量。

我有一个值,我知道它将是@“YES”或@“NO”,但YES(或)NO值是NSString,我只是想改变成BOOL的NSString。

我怎样才能做到这一点?

请回答我,如果你知道。

谢谢阅读。

我认为是这样的:

BOOL boolValue = [myString boolValue]; 

你应该使用NSString-boolValue 。 直接引用文档:

[返回t]接收者文本的布尔值。 遇到“Y”,“y”,“T”,“t”或数字中的一个时返回YES 1-9 – 该方法忽略任何结尾字符。 如果接收方不是以数字的有效小数文本表示开始,则返回NO。

这似乎符合您的input案例。

 if ([string isEqualToString: @"YES"]) foo(); else bar(); 

这可能是最好的解决与条件,例如:

 if ([myString isEqualToString:@"YES"]) myBool = YES; else if ([myString isEqualToString:@"NO"]) myBool = NO; 

希望这对你有帮助,祝你好运。

如果string是“真”,这个属性也应该返回true,这就是为什么我认为需要扩展…

 extension NSString{ var boolValueExtended: Bool { get{ return boolValue || self.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceCharacterSet()).uppercaseString == "TRUE" } } 

}