objective-c 中的小常识

来源:互联网 发布:mac mini 2016更新 编辑:程序博客网 时间:2024/06/06 13:57

nil,NULL,NSNULL,Nil

nil 是指向objective-c中的对象的空指针,是一个对象,在objective-c中nil对象调用方法不会crash。

Nil 是指向objective-c中的类的空指针,表示的是一个空类。

NULL 是指向任何类型的空的指针 如C/C++中的空指针,在objective-c中是一个数值

NSULL用于集合操作,在集合对象中,表示一个空值的集合对象。

self,super,id,SEL

self在objective-c中相当于c++中的this指针,是一个指向自身的对象指针,可以使用它访问自身的方法和属性。

super表示的是一个指向自己父类的对象指针,可以使用它访问父类。

id类型是objective-c中的一种通用类型的对象指针相当与C中的void *指针可以存储任何对象

SEL是selector的一个类型,表示一个方法的名字。

release和nil

release和ni常与对象指针有关,release是释放该对象指针所在的内存,而将对象设置为nil,只是表示的是该对象指针是一个空指针,不指向内存中的任何位置,所以nil不会释放内存。相反,如果只nil,不release会造成该内存地址泄露。

如果一些对象release后不设置为nil,则在使用该对象时会crash。因此我们一般的做法:先release后设置为nil。

    MyObject *object=[[MyObjectalloc]init];

    [object release];

    object=nil;

    NSLog(@"******:%@",object);

不会crash 

    MyObject *object=[[MyObjectalloc]init];

    [object release];

    NSLog(@"******:%@",object);

直接crash

原创粉丝点击