You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Objective-C中@TRUE的含义是什么?附代码实例

关于Objective-C中@TRUE的解析

嘿,这个问题问得很细致!我来帮你把@TRUE的来龙去脉讲清楚:

1. 先搞懂几个核心宏的定义

在Objective-C的环境里:

  • TRUE 和 FALSE 是C语言标准宏,分别被定义为1和0;
  • YES 和 NO 是Objective-C专属宏,本质上也分别对应1和0(严格来说YES是BOOL类型的1,不过数值上和TRUE完全一致)。

2. @TRUE到底是什么?

Objective-C的@字面量语法,作用是把基础类型的常量包装成对应的Foundation对象:

  • @YES 是 [NSNumber numberWithBool:YES] 的语法糖;
  • 而@TRUE 本质就是 @1,也就是包装了数值1的NSNumber对象——因为TRUE本身就是1,所以@TRUE和@YES生成的是完全等价的NSNumber实例。

你可以用这段代码验证:

NSNumber *num1 = @TRUE;
NSNumber *num2 = @YES;
if ([num1 isEqual:num2]) {
    NSLog(@"两者完全等价"); // 会输出这句话
}

3. 为什么会有人用@TRUE?

这更多是编码习惯问题:

  • 有些开发者习惯C语言风格的TRUE/FALSE,就会写成@TRUE;
  • 多数Objective-C项目里更常用@YES/@NO,因为更贴合OC的语言风格,但@TRUE是完全合法的写法,功能上没有任何区别。

内容的提问来源于stack exchange,提问作者Richard Topchii

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.12 05:29:48