ARC 简短介绍

ARCatom

ARC 是一种编译器特性!而不是IOS运行时特性,和JAVA中得垃圾回收机制彻底不同指针

ARC是自iOS 5以后增长的新特性,彻底消除了手动管理内存的烦琐,编译器会自动在适当的地方插入适当的retain、release、autorelease语句。你再也不须要担忧内存管理,由于编译器为你处理了一切code

ARC规则:只要还有一个强指针变量指向对象,对象就会保持在内存中对象

弱指针指向的对象被回收后,弱指针会自动变为nil指针,不会引起野指针错误内存

使用注意:编译器

一、不容许调用release、retain、retainCount;内存管理

二、容许重写dello方法,可是重写dello方法中不容许[super delloc];io

三、@property参数:编译

strong :表明建立的 _成员变量 是一个强指针,相似于原来的retain,(适用于OC对象)class

weak   :表明建立的 _成员变量 是一个若指针,相似于原来的assgin,(适用于OC对象)

assign :这个适用于非OC对象,好比 int型、long型等等

四、之前的retain要改成strong

五、假如出现循环引用的用法,那么就要一端用strong一端用weak

例如:一条狗有一个主人,一个主人有一条狗!

@interface Dog : NSObject
@property (nonatomic,weak) Person *person; // 狗拥有一个主人对象,这个指针是一个弱指针,
@end

@implementation Dog
@end

@interface Person : NSObject
@property (nonatomic,strong) Dog *dog;    // 人拥有一个狗对象,这个指针是一个强指针,
@end

@implementation Person
@end
相关文章
相关标签/搜索