NSString的boolValue方法甚解

简介: 前言NSString的boolValue之前有使用,但是一直没有真正了解什么时候返回YES(true)或NO(false)。其实,苹果在官方文档中已经写的很清楚,按command + control 点击boolValue进入文档就可以看到:boolValueThe Boolean value of the string.

前言

NSString的boolValue之前有使用,但是一直没有真正了解什么时候返回YES(true)或NO(false)。其实,苹果在官方文档中已经写的很清楚,按command + control 点击boolValue进入文档就可以看到:

boolValue
The Boolean value of the string.

Declaration
@property(readonly) BOOL boolValue;

Discussion
This property is YES on encountering one of "Y", "y", "T", "t", or a digit 1-9—the method ignores any trailing characters. This property is NO if the receiver doesn’t begin with a valid decimal text representation of a number.
The property assumes a decimal representation and skips whitespace at the beginning of the string. It also skips initial whitespace characters, or optional -/+ sign followed by zeroes.

中文意思:

字符串中包含“Y”,“y”,“T”,“t”,或1-9的数字开头时,这个属性值为YES。

如果不是以有效的十进制数字开始的文本表示,则此属性为NO。

该属性采用十进制表示法,并在字符串的开头跳过空格。它也会跳过最初的空格字符(忽略全部的空格开头),或者单个 -/+ 符号开头。

测试一波

大家可以思考一下,下面的代码输出结果是什么?

NSArray *tests = @[ @"Y",
                        @"N",
                        @"T",
                        @"F",
                        @"t",
                        @"f",
                        @"1",
                        @"0",
                        @"Yes",
                        @"No",
                        @"No really no",
                        @"true",
                        @"false",
                        @"To be or not to be",
                        @"False",
                        @"3567",
                        @"0123456789",
                        @"000",
                        @"0ab",
                        @"1cd",
                        @"abc",
                        @"",
                        @"+aeb",
                        @"+3sb",
                        @"-ss",
                        @"-01",
                        @"-21",
                        @" 1",
                        @" 0",
                        @"--1",
                        @"++1",
                        @"-+1",
                        @"  2",
                        @"  0",
                        @"   2  0",
                        @"   0  2",
                        @"  20",
                        @"000-1",
                        @" + 111",
                        @"  +111"
                        ];
    NSArray *boolToString = @[@"NO", @"YES"];
    
    for (NSString *test in tests){
        NSLog(@"boolValue:\"%@\" => %@", test, boolToString[[test boolValue]]);
    }

结果

运行结果:

boolValue:"Y" => YES
boolValue:"N" => NO
boolValue:"T" => YES
boolValue:"F" => NO
boolValue:"t" => YES
boolValue:"f" => NO
boolValue:"1" => YES
boolValue:"0" => NO
boolValue:"Yes" => YES
boolValue:"No" => NO
boolValue:"No really no" => NO
boolValue:"true" => YES
boolValue:"false" => NO
boolValue:"To be or not to be" => YES
boolValue:"False" => NO
boolValue:"3567" => YES
boolValue:"0123456789" => YES
boolValue:"000" => NO
boolValue:"0ab" => NO
boolValue:"1cd" => YES
boolValue:"abc" => NO
boolValue:"" => NO
boolValue:"+aeb" => NO
boolValue:"+3sb" => YES
boolValue:"-ss" => NO
boolValue:"-01" => YES
boolValue:"-21" => YES
boolValue:" 1" => YES
boolValue:" 0" => NO
boolValue:"--1" => NO
boolValue:"++1" => NO
boolValue:"-+1" => NO
boolValue:"  2" => YES
boolValue:"  0" => NO
boolValue:"   2  0" => YES
boolValue:"   0  2" => NO
boolValue:"  20" => YES
boolValue:"000-1" => NO
boolValue:" + 111" => NO
boolValue:"  +111" => YES

总结

不知道大家答对多少?是不是对这个方法又熟悉了几分呢?实践见真知。

参考引用


注:本文首发于 iHTCboy's blog,如若转载,请注明来源。

目录
相关文章
|
6月前
|
存储 人工智能 Linux
阿里云/本地部署OpenClaw+三大高阶配置+百炼api接入,效率提升实战指南
日常工作中,信息整理、内容创作、素材处理、数据监控等重复性事务往往占据大量时间,即便借助AI工具,也常面临上下文遗忘、功能单一、执行效率低等问题。OpenClaw作为一款可高度自定义的AI协作框架,通过多智能体架构、三级记忆系统、Skill技能库三大核心配置,搭配完善的部署与模型接入方案,能将AI从单一工具转变为协同工作的数字团队,大幅提升个人与小型团队的工作效率。本文将完整拆解三大高阶配置,同步提供2026年阿里云、本地MacOS/Linux/Windows11部署流程,以及阿里云千问大模型、免费Coding Plan API配置方法与常见问题解答,覆盖从搭建到使用的全流程。
1043 1
|
9天前
|
人工智能 数据挖掘
阿里千问办公官网入口链接在哪?QwenWork.cn官网,自动帮你干活的AI Agent!
千问办公提供两大官方入口:一是网页端(qwenwork.cn),支持免安装即用;阿里千问办公官网:https://t.aliyun.com/U/JNKJuO 阿里AI工作平台,一句话完成数据分析、PPT 生成、视频剪辑、网页搭建等复杂任务
672 2
|
8月前
|
人工智能 自然语言处理 算法
AI 智能体运营工程师:从工程视角看定义、职责与落地方法
本文定义“AI智能体运营工程师”这一新型复合角色,聚焦智能体在真实业务中的长期稳定运行。通过任务编排、工具链协同、效果评估与持续优化,推动AI从一次性工具升级为可复用、可演进的工程化系统,助力企业级AI落地。(239字)
|
9天前
|
人工智能 监控 架构师
【云栖大会】逛展拿礼+硬核论坛:阿里云开放平台展区全攻略
2026云栖大会,阿里云开放平台亮相杭州1号馆!可观测治理(1-B6-2)与Agent编排(1-B3-3)双展区互动体验,扫码领“掌上凉风”、挑战得手机支架、深度体验赢限量好礼;论坛签到即赠盲盒,早到更有隐藏彩蛋!
|
6月前
|
存储 人工智能 安全
给AI龙虾配云端硬盘:OpenClaw阿里云/本地部署+360AI云盘Skill安装、API配置与全场景使用指南
2026年OpenClaw(龙虾、Clawdbot)已经成为AI自动化执行的主流平台,无论是自动写作、文件处理、数据抓取、资料整理,还是办公流程自动化,都能高效完成。但随着使用深入,海量文件存储、多端同步、知识沉淀、数据安全问题开始凸显——本地空间不足、文件丢失、多设备无法互通、AI无法读取云端资料,成为限制能力的核心瓶颈。
998 2
|
2月前
|
人工智能 网络协议 网络性能优化
【洛神公开课】第6期:AI网络白皮书-02训练网络篇
阿里云AI训练网络“三层引擎”(Scale-Up/Out/Across)突破万卡集群瓶颈:NVLink实现单机8卡全互联,HPN+eRDMA将跨机通信时延压至2μs,CEN+TR支撑跨域Tbps级协同。三者协同达成96%线性加速比,显著破解GPU空转难题。(239字)
550 1
|
2月前
|
人工智能 自然语言处理 数据可视化
阿里云百炼大模型服务平台介绍:模型优势、模型服务、计费规则及使用流程介绍
阿里云百炼是一站式大模型开发与应用平台,集成通义千问全系列及DeepSeek、Kimi、GLM等主流第三方模型,提供模型调用、微调、智能体与工作流构建的全链路能力。平台支持API调用、可视化编排及高代码开发三种方式,兼容OpenAI协议,开发者可零门槛接入。计费灵活,提供按Token用量、Token Plan订阅(低至4.5折)及阶梯计费等模式;新人享每日200次Qwen3.7-Max免费调用,夜间22:00至08:00更有2折错峰优惠,综合最高可省80%,助力个人开发者与企业以最优成本落地AI应用。
|
3月前
|
人工智能 自然语言处理 安全
Vibe Coding实战指南:堆砌Prompt没用,工程规范才是高效核心
本文揭秘vibe coding(提示词驱动开发)落地失败的根源:非提示词不精,而是工程规范缺位。基于8个真实商业项目经验,提出5步标准化实战法——锁需求边界、建工程骨架、模块化Prompt、自动化校验、增量式迭代,并推荐适配工具TRAE。强调:AI提效的前提,是人工前置定义架构、规范与校验规则。(239字)
|
7月前
|
JavaScript 搜索推荐 前端开发
从提示工程转向 上下文工程,6种让LLM在生产环境中稳定输出的技术
本文系统阐述“上下文工程”(Context Engineering)——生产级AI系统的核心能力。它不依赖提示词优化,而是通过选择性检索、上下文压缩、层次化布局、动态查询重构、记忆注入与工具感知六大技术,精准控制模型在运行时“看到什么、何时看、如何看”,从而根治幻觉、提升准确率、降低Token消耗,让小模型也能稳定输出高质量结果。
951 16
从提示工程转向 上下文工程,6种让LLM在生产环境中稳定输出的技术
|
5月前
|
前端开发 网络安全
tmux 终端效率提升 300% 的实战指南
本文手把手教你从零掌握tmux:解决多终端切换痛点,详解安装配置、鼠标支持、vi模式、核心快捷键(Ctrl+a+c/n/p/"/%/o等),并提供可复用的自动化脚本,助你1个终端高效管理多个项目,远程断连不丢工作,效率提升300%!

热门文章

最新文章