我想知道如何在Objective-C中判断字符串是否表示布尔值。 [string boolValue]
方法不起作用,因为当我尝试解析像[@"ERROR" boolValue]
这样的字符串时,它返回NO而不是抛出异常。在C#中,我可以执行类似:if (Boolean.TryParse(string, out bool))
的操作,但据我所知,这在Objective-C中不可用,因为BOOL
类型不是面向对象的。我是否必须编写自己的BOOL
解析器类?或者是否有我遗漏的东西(例如NSScanner
)?
答案 0 :(得分:5)
根据文档,boolValue
“遇到”Y“,”y“,”T“,”t“或数字1-9之一时返回YES-该方法忽略任何尾随字符。如果接收者没有以数字的有效十进制文本表示开头,则返回NO。“
如果您正在寻找不同的东西,您需要编写一个小工具或使用a category来完成工作。
如果它快速,你甚至可以使用NSString的-isEqualToString:
方法。