ARC对象内存管理以及强弱指针

_strong Person *p强指针 

_weak Person *p弱指针

Person *p强指针 ,默认是强指针

 

单对象

ARC中只要没有被强指针指向的对象,内存就会被释放

_weak Person *p=[[Person alloc]init];

在创建完就会被释放

 

多对象

人拥有狗

@property (nonaatomic,strong)Dog *dog;

当狗被单独释放时,Dog并不一定会被释放,因为有可能人的属性中有指针指向Dog

当互相指向时

人拥有狗

@property (nonaatomic,strong)Dog *dog;

狗有主人

@property (nonaatomic,weak)Person *person;

 要有一方使用弱指针,否则永远不会释放

posted @ 2016-01-20 21:10  爱上咖啡的唐  阅读(208)  评论(0编辑  收藏  举报