最近看到这段代码:
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
[configuration.preferences setValue:@TRUE forKey:@"xxxx"];
代表什么@TRUE
?我第一次看到这个结构。
我知道这YES
等于true
和
@YES
等于NSNumber nubmerWithBool
,但@TRUE
代表什么?
最近看到这段代码:
WKWebViewConfiguration *configuration = [[WKWebViewConfiguration alloc] init];
[configuration.preferences setValue:@TRUE forKey:@"xxxx"];
代表什么@TRUE
?我第一次看到这个结构。
我知道这YES
等于true
和
@YES
等于NSNumber nubmerWithBool
,但@TRUE
代表什么?
如果你预处理:
NSNumber *test = @TRUE;
它最终成为
NSNumber *test = @1;
(一个铿锵的文字[NSNumber numberWithInt:1]
)。
这是合乎逻辑的,考虑TRUE
被预处理为1
.
这可能更容易看到:
#define MY_STRING "my_string"
NSString *string = @MY_STRING;
它被预处理为:
NSString *string = @"my_string";
它是一种NSNumber
文字,一种NSNumber
从标量文字表达式创建实例的方式。
来自Clang 9 文档:
在 Objective-C 中,任何以 '@' 字符为前缀的字符、数字或布尔文字都将评估为指向使用该值初始化的 NSNumber 对象的指针。C 的类型后缀可用于控制数字文字的大小。