Objective C 尝试解析布尔值

发布于 2024-09-18 17:04:59 字数 364 浏览 8 评论 0原文

我想知道在 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

耳根太软 2024-09-25 17:04:59

根据文档,“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.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文