Objective-C 布尔类型 和 class、SEL类型

发现很多初学者无法区分bool和BOOL及class类型,今天闲来无事,写个博文做个区分

1. bool是C语言的布尔类型,有true和false,BOOL是Objective C 语言的布尔类型,有YES和NO,因为OC可以跟C混编,所以bool和BOOL可以同时出现在代码中

2. BOOL深入解析:

BOOL实际上是带符号的字符类型,存储空间为8位,所以如果把一个32位的整数赋给BOOL,只会取末8位。

BOOL类型中YES定义为1,NO定义为0,在内存存数据时,并不会存YES或NO,所以如果赋值后,末8位为零,那么该布尔值位NO.

3.SEL类型

对应于OC中得函数

4.Class类型

用来表示一个类名,class被创建后,我们可以把class来当成对象的类。

如:

[类或对象 Class];
[类或对象 superClass];
NSClassFromString(方法名字的字符串); 
<span style="font-family:KaiTi_GB2312;font-size:18px;">    Class class1=[NSString class];
    NSDictionary *a=[NSDictionary new];
    Class class2=[a class];
    Class class3=[a superclass];
    Class class4=[NSDictionary superclass];
    Class class5=NSStringFromClass(@"NSString");</span>

Objective-C 布尔类型 和 class、SEL类型

时间: 2024-10-19 08:10:07

Objective-C 布尔类型 和 class、SEL类型的相关文章

03 php 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换,算术运算,比较运算

03 数据类型:整数,进制转换,浮点,字符,布尔,数组,空类型,类型转换, 算术运算,比较运算,逻辑运算,短路现象, 三目运算符,字符型运算: 数据类型 整体划分 标量类型: int, float, string, bool 复合类型: array,     object 特殊类型: null,     resouce 整数类型int, integer 3种整数表示法 十进制写法:123: $n1 = 123; 八进制写法: 0123 $n2 = 0123; 十六进制写法: 0x123 $n3

Description方法&amp;&amp;SEL类型

description方法和sel数据类型 一.description方法 Description方法包括类方法和对象方法.(NSObject类所包含) (一)基本知识 -description(对象方法) 使用NSLog和@%输出某个对象时,会调用对象的description方法,并拿到返回值进行输出. +description(类方法) 使用NSLog和@%输出某个对象时,会调用类对象的description方法,并拿到返回值进行输出,把整个对象一次性打印出来,打印对象使用%@. 使用@%打

SEL 类型 和 类的反射

SEL 类型 SEL 类型是用来描述一个方法的,可以理解为SEL是方法的指针.该SEL类型类似于Java中的Method类.OC中可以通过两种方法来获得SEL类型. @selector(methodName) : NSSelectorFromString(@"methodName") ; 反射的方法 -(BOOL) isKindOfClass : (class) clazz isKindOfClass 方法用来判断当前对象是否是一个类或者其子类的实例 [cat isKindOfClas

OC语言--SEL类型小记

SEL类型 1 @selector();函数 示例代码: SEL sel = @selector(bark);//把oc的方法名转化为选择器类型SEL //检测判断sel选择器代表的方法,在xiaohong对象所属类中有没有实现 if ([xiaohong respondsToSelector:sel]) { //调用的效果等价于 [xiaohong bark]; [xiaohong performSelector:sel];//执行sel所代表的方法 }else{ NSLog(@"函数没有实现

SEL 类型

1.SEL类型的第一个作用, 配合对象/类来检查对象/类中有没有实现某一个方法 SEL sel = @selector(setAge:); Person *p = [Person new]; // 判断p对象中有没有实现-号开头的setAge:方法 // 如果P对象实现了setAge:方法那么就会返回YES // 如果P对象没有实现setAge:方法那么就会返回NO BOOL flag = [p respondsToSelector:sel]; NSLog(@"flag = %i",

Class 类型、Selector 选择器、SEL 类型、函数指针

一.Class 类型 机制:一个类在正确编译后,在这个被正确编译好的类里面,存在一个isa指针,用于存储类的方法及变量信息,这个isa指针是id类型.可以通过一个普通的字符串可能获取到这个Class类型对象,也可以通过此类的对象获取到此类的Class类型对象,获取到Class类型对象后,可以按类实例化后的对象一样使用它.在程序runtime可以通过类的Class类型对象获取到类实例化后的对象,也可以动态的获取在编译阶段无法确定的对象. 因为,在类里面存储了类的所有信息,所以,可以通过类的名称或类

Objective-C description方法 SEL类型

description方法 #import "Person.h" @implementation Person - (void) setAge : (int) age { _age = age; } /** 决定了实例对象的输出结果 **/ - (NSString *) description { return [NSString stringWithFormat : @"age=%i", _age]; } /** 决定了类对象的输出结果 **/ + (NSStri

黑马程序员---OC基础5【点语法】【@property关键字】【@synthesize关键字】【id类型】【动态类型】【构造方法】

------Java培训.Android培训.iOS培训..Net培训.期待与您交流! ------- [点语法] 1 1.使用“点语法” 2 Student *stu= [[Student alloc]init]; 3         //调用set方法 4         [stu setAge:20]; 5         [stu setName:@"Jone"]; 6         //点语法:xcode的特性,Xcode帮我们做了代码替换 7         //点语法,

JavaScript基础——引用类型(二)日期类型Date、正则表达式类型RegExp

Date类型 ECMAScript中的Date类型是在早期Java中的java.util.Date类基础上构建的.为此,Date类型使用自UTC(CoordinatedUniversal Time,国际协调时间)1970年1月1日午夜(零时)开始经过的毫秒数来保存日期.在使用这种数据存储格式的条件下,Date类型保存的日期能够精确到1970年1月1日之前或之后的285 616年. 要创建一个日期对象,使用new 操作符和Date构造函数即可,如: var now = new Date(); 在调