macOS/iOS API解説

iOS , Mac アプリケーション開発のために使われる主要フレームワークの日本語情報です。2010年代に書かれた内容です。今後更新はありません。

目次

ARC(Auto Reference Counting)

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