Objective C 尝试解析布尔值
我想知道在 Objective-C 中如何判断一个字符串是否代表一个布尔值。 [string boolValue]
方法不起作用,因为当我尝试解析像 [@"ERROR" boolValue]
这样的字符串时,它返回 NO 而不是抛出异常。在 C# 中,我可以执行类似以下操作: if (Boolean.TryParse(string, out bool))
,但据我所知,这在 Objective-C 中不可用,因为 BOOL< /code> 类型不是面向对象的。我必须编写自己的
BOOL
解析器类吗?或者我缺少什么(例如 NSScanner
)?
I would like to know how, in Objective-C, how to tell if a string represents a boolean value. The [string boolValue]
method will not work, because when I try to parse a string like [@"ERROR" boolValue]
it returns NO instead of throwing an exception. In C#, I could do something like: if (Boolean.TryParse(string, out bool))
, but this is not available in Objective-C as far as I know because the BOOL
type is not object oriented. Will I have to write my own BOOL
parser class? Or is there something I am missing (NSScanner
for instance)?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
根据文档,“boolValue”在遇到“Y”、“y”、“T”、“t”或数字 1-9 之一时返回 YES,该方法会忽略任何尾随字符。如果接收者不以数字的有效十进制文本表示形式开头,则返回 NO。”
如果您正在寻找不同的东西,您需要编写一些实用程序或使用 一个类别来完成工作。
如果速度很快,您甚至可以使用 NSString 的
-isEqualToString:
方法。According to the documentation,
boolValue
"returns YES on encountering one of "Y", "y", "T", "t", or a digit 1-9—the method ignores any trailing characters. Returns NO if the receiver doesn’t begin with a valid decimal text representation of a number."If you're looking for something different, you'll need to write a little utility or use a category to get the job done.
If it's something quick, you could even resort to using NSString's
-isEqualToString:
method.