nil和release区别

来源:互联网 发布:安倍晋三支持率 知乎 编辑:程序博客网 时间:2024/05/22 18:23

nilrelease区别

nil是将一个对象指针置为空,只是切断指针和内存中对象联系,还是占用内存的,并没有真正释放内存,只是将对象指针置为空。

release是真正通知内存释放对象,真正释放内存。

如果没有relase而是直接置为nil,那么程序编译运行时候可能不会出错,但是这存在内存泄露,因为置为nilrelease不起作用了。

如果只是release而没有置为nil,应用程序也不能不会报错,但是会不稳定,程序的健壮性不够好,因为没有设置self.obj = nil,release这个obj后,如果在之后又用到了这个对象,因为在系统内存中已经不存在了,程序就会崩溃,所以在release一个对象后应该也要将该对象置为nil,在之后如果用到了这个obj也不会造成崩溃。

nil是给对象赋值,NSNULL是给指针赋值

例如判断一个对象  if(obj){},NSNULL用于对集合操作。

0 0
原创粉丝点击