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
相關文章
相關標籤/搜索