iOS学习HTML5 专栏互联网科技

iOS id、BOOl、结构体区别

2018-01-13  本文已影响148人  石虎132

//联系人:石虎 QQ:1224614774 昵称:嗡嘛呢叭咪

一、 id

   1.在OC中最普遍的3种类型就是id、Class和SEL, id就是指向OC对象的指针,它等价于C语言中的void*,可以映射任何对象指针类型指向它,或者映射它指向其他的对象。当然,也可以传递任何消息给id,但如果该id不支持这个消息就会返回一个运行时异常。

   2.id数据类型可存储任何类型的对象。从某种意义上说,它是一般对象类型。如果要用基本类型代替,需要对基本数据类型进行封装。

   3.id是一个指向任何一个继承了Object(或者NSObject)类的对象。需要注意的是,id

是一个指针,所以在使用id的时候不需要加星号。例如:

id foo = nil;

   4.在OC中,id取代了int类型成为默认的数据类型(在C语言上的函数返回值,int是默认的返回类型)。

二、 BOOl

   1.在OC中的布尔类型是BOOL,其值可以是YES或NO,也可以赋值为TRUE和FALSE。YES和TRUE等价,都是非零值;NO和FALSE等价,都是零值。

   2.在调试的时候可以通过打印数字的方式(格式为%d)输出其值,代码如下:

      BOOLloginResult =YES;

     NSLog(@"LoginResult is %d",loginResult);

   3.布尔变量的值为YES/NO或1/0.YES和1代表真。

三、结构体

   1.C语言本身提供的数据类型很少,那么C语言是如何构造复杂的数据类型呢?有三种方法:结构体、指针、数组。

   2.结构体和指针在iOS编程是至关重要的,在OC中很少需要C的数组,因为OC有它自己的NSArray类型。

   3.C的结构体是一个混合数据类型,在这个类型中包含了多种数据类型(也可以是另一个结构体),它能够作为单个的实体被传递。其中的元素通过点符号来访问。例如:

     一个CGPoint定义如下:

struct CGRect{

                   CGRect x;

                   CGRect y;

                   };

            typedef struct CGPoint

谢谢!!!

上一篇 下一篇

猜你喜欢

热点阅读