Objective-c 数据类型
来源:互联网 发布:nginx apache php配置 编辑:程序博客网 时间:2024/06/05 00:10
这里列出Objective-c中独有数据类型:
一、字符串
在Objective-c中,字符串常量是由@和一对从引号括起的字符串序列。比如:@"China"、@"objective-c"等都是合法的字符串常量。
id类型是Objective-c中一个比较独特类型。
在概念上、类似Java中的Object类,可以转换为任何数据类型。
换句话说,id类型的变量可以存放任何数据类型的对象。
在内部处理上,这种类型被定义为指向对象的指针,实际上是一个指向这种对象的实例变量的指针。
我们可以理解为id类型就是void*类型。但是它们两个并非完全一样。下面是id在objc.h中的定义:
- typedef struct objc_object {
- Class isa;
- }*id;
从上面看出,id是指向struct objc_object的一个指针。也就是说,id是一个指向任何一个继承了Ojbect(或者NSObject)类的对象。需要注意的是id是一个指针,所以在使用id的时候不需要加星号,比如: id n=nil;
例如:
- id data;
- data = person;
- [data print];
- …
- data = person1;
- [data put];
- …
三、BOOL
在objc.h中,BOOL定义为:
- typedef signed char BOOL;
- #define YES (BOOL)1
- #define NO (BOOL)0
从上面的定义,我们可以发现布尔变量的值是YES和NO,或0和1.
如:
- BOOL enable=NO;
- enable=0;
- if(enable == YES) …
- if(enable) …
- if(!enable) …
四、SEL
在Objective-c中,SEL是选择器(selector)的一个类型。
选择器就是指向方法的一个指针。我们可以理解为程序运行到这里时就会执行指定的方法。
例如:
- SEL sel=@selector (print);
- ClassA *classA = [[ClassA alloc]init];
- ClassB *classB = [[ClassB alloc]init];
- [classA performSelector:sel withObject:nil];
- [classB performSelector:sel withObject:nil];
- SEL selA=@selector (print:);
- SEL selB=@selector (print:age:);
在上例中sel是指向print方法的指针,没有指定它是属于哪个类。因此,不同的类中都有print方法时可以调用上面的形式进行调用。
我们可以将SEL理解为函数指针,但它们之间并非完全一样。
五、Class
与Java类似,你可以使用Class类来获得一个对象所属的类。如:
Class theClass = [theObject class]; //获得theObject对象的class信息
NSLog(@"类名是:%s",[theClass className]); //theObject对象的类名
Class类有几个常用的方法,如判断某个对象是否为某个类(包含子类)的对象:
if( [theObject isKindOfClass:[Member class]]) {…}
如果不想包含子类,就可以使用:
if( [theObject isMemberOfClass:[Member class]] {…}
六、nil和Nil
nil与C语言的NULL相同。在objc/objc.h中定义如下:#define nil 0 /* id of Nil instance */
Nil与nil有点不一样,Nil定义一个指向空的类(是Class,而不是对象)。具体定义如下:
#define Nil 0 /* id of Nil class */
如:
- ClassA *classA = [[ClassA alloc]init];
- classA = nil
- id data;
- data=nil;
1 1
- Objective-C 2.0数据类型
- Objective-C基本数据类型
- objective-c基本数据类型
- objective-C 数据类型转换
- Objective-C中的数据类型
- Objective-c 数据类型
- Objective-C语言:数据类型
- Objective-C 2.0数据类型
- Objective-C id数据类型
- objective-c数据类型
- Objective-c 数据类型
- objective-c数据类型
- Objective-C数据类型
- objective-c数据类型
- Objective-c:数据类型
- Objective-C 数据类型
- objective-c基本数据类型总结
- objective-c中的数据类型转换
- 迭代器(C# 编程指南)
- css3 滤镜效果
- Hadoop伪终端ssh无法登陆本机的修订技巧
- oracle监听程序配置
- 10种值得推荐的数据可视化工具
- Objective-c 数据类型
- Pcduino下linux 的Uboot Kenel Roofs 制作烧写(二)
- audio模块验证的纠结
- MySql查询前n条记要
- C# 委托实例(跨窗体操作控件)
- 第 11 章 Webx日志系统的配置
- java学习笔记——开篇
- SPI总线之CPOL CPHA(转)
- 寻找直方图中面积最大的矩形(C语言版)