野指针
野指针和空指针是不一样的,空指针没有储存任何的内存地址,而野指针指向的一块内存地址,但是该内存不可用。换句话说,野指针指向的对象已经被释放了。
<pre>Person *p =[[Person alloc]init];
[p setName:@"wan"];
[p release]; //指针p指向的对象已经被释放,但是该指针还能访问该内存地址
[p setName:@"zero"]; //所以此处不会报错</pre>
僵尸对象
在OC中,对象被释放后所占用的内存在没有被复写(重新分配给其他对象)前称为僵尸对象,这是野指针是可以访问该内存的,因为对象的数据还在,所以程序不会报错。但是该内存一旦重新分配给其他对象就会出现问题。
nil、Nil、NULL、NSNULL的含义和区别
nil:OC中的对象的空指针
Nil:OC中类的空指针
NULL:C类型的空指针
NSNull:数值类的空对象
showjoy_120.png<h1 align = "center">喜欢文章的顺便支持下小店儿呗!😊😊😊😊😊😊😊😊</h1>
一款自用省钱,分享赚钱的平台!注册达人店店主优惠更多,app邀请码avypwr6
网友评论