INDEX>Objective-C>ARC(Auto Reference Counting)
編集時バージョン OS X 10.8,iOS6.1
ARCとは
メモリの管理をコンパイラが行うシステム
**
以下のメソッドは使えなくなる。
retain
release
autorelease
[suer dealloc]は不要に
**
NSAutoreleasePoolの代わりに
@autoreleasepool{}を使う
**
alloc、new、copy、mutableCopyで始まるメソッドは所有の参照を返す。
**
__strong デフォルト、強い参照 自分自身で保有すると循環参照になる。(メモリが解放されない)
__unsafe_unretained iOS4.3以降5未満で弱い参照。nilを代入しておく。
__weak 弱い参照 iOS5以降
__autoreleasing autoreleaseと同じ動き
__bridge 所有権が移転しないキャスト
__bridge_retained ARC制御下から所有権を移す
NSMapTable、NSHashTabeleは弱い参照を所有することができるクラス。
**
selfがブロックに入ると循環参照になる。
**
部分的にarcを使わない。
- fno-objc-arc