2010-09-11 58 views
1

我想知道在Objective-C中如何判断一个字符串是否代表布尔值。 [string boolValue]方法不起作用,因为当我尝试解析像[@"ERROR" boolValue]这样的字符串时,它将返回NO而不是抛出异常。在C#中,我可以执行如下操作:if (Boolean.TryParse(string, out bool)),但据我所知,Objective-C中不提供此功能,因为BOOL类型不是面向对象的。我将不得不编写我自己的BOOL解析器类吗?还是有我缺少的东西(例如NSScanner)?Objective C尝试解析布尔值

回答

5

根据文档,boolValue“在遇到”Y“,”y“,”T“,”t“或数字中的一个时返回YES 1-9 - 该方法忽略任何尾随字符。接收器不以数字的有效小数文本表示开始。“

如果您正在寻找不同的东西,您需要编写一个小工具或使用a category来完成工作。

如果它很快,你甚至可以使用NSString的-isEqualToString:方法。

+0

所以我需要做我自己的自定义分析器? – 2010-09-11 20:45:36

+0

我会在这种情况下。 – 2010-09-11 21:05:32

+0

这就是我所做的,我确实相信它会适合我的情况,谢谢你的回应。 – 2010-09-11 21:17:35