如何在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" } }
}