cdu*_*dub 23 boolean objective-c objective-c-literals
在Objective-c中,@YES/ @NO和YES/ 之间有什么区别NO?每种都使用什么类型?
San*_*ani 39
@YES 是一种简短的形式 [NSNumber numberWithBool:YES]
&
@NO 是一种简短的形式 [NSNumber numberWithBool:NO]
如果我们写
if(@NO)
some statement;
Run Code Online (Sandbox Code Playgroud)
上面的if语句将执行,因为上面的语句将是
if([NSNumber numberWithBool:NO] != nil)
Run Code Online (Sandbox Code Playgroud)
并且它不等于nil它将会如此true并因此将通过.
鉴于YES而且NO简单BOOL's而且它们被定义为 -
#define YES (BOOL)1
#define NO (BOOL)0
Run Code Online (Sandbox Code Playgroud)
YES&NO是一样的true&false,1&0分别可以使用1&0代替YES&NO,但就可读性而言YES:NO将(应该)肯定是首选.
And*_*rea 16
不同之处在于,通过使用@您创建一个NSNumber实例,从而创建一个对象.Yes并且No只是原始布尔值而不是对象.
这@是一种文字的快捷方式,可以在字符串@"something",字典@{"key": object},数组@[object,...]和数字:@0,@1...@345或表达式中创建对象@(3*2).
重要的是要明白,当你有一个对象,比如NSNumber你不能做基本的数学运算(在obj-c中),比如add或multiply,首先你需要使用如下方法回到原始值: - integerValue,- boolValue,-floatValue等
您可能已经看过它,因为基础集合类型仅适用于对象,因此如果您需要在其中放置一系列bool NSArray,则必须将其转换为对象.
| 归档时间: |
|
| 查看次数: |
6824 次 |
| 最近记录: |