1 /* 2 1>僵尸对象:所占用内存已经被回收的对象,将是对象不能再使用 3 2>野指针:指向僵尸对象(不可用内存)的指针 4 3>空指针:没有指向任何东西的指针(存储的对象可以是nil,NULL,0) 5 * 给野指针发送消息会报错,给空指针发送消息不会报错 6 */ 7 8 #import <Foundation/Foundation.h> 9 #import "Person.h" 10 11 int main(){ 12 // 1 13 Person *p = [[Personalloc]init]; 14 15 NSUInteger c = [p retainCount]; 16 17 NSLog(@"计数器:%ld",c); 18 19 // 2 retain方法返回的是对象本身 20 [p retain]; 21 22 // 1 23 [p release]; 24 25 // 0 野指针:指向僵尸对象(不可用内存)的指针 26 [p release]; 27 // 28 p.age = 10; 29 //指针p变成空指针 30 p = nil; 31 32 // EXC_BAD-ACCESS:访问了一块坏的内存(已经被回收、不能使用的内存) 33 // 野指针错误 34 // OC中不存在空指针错误,给空指针发送消息不报错 35 [p release]; 36 37 return0; 38 }
时间: 2024-11-15 04:20:53