[Objective-C]わかりやすいプロパティのnonatomic/strong/copy/retain/assignの意味

  • 6
    いいね
  • 0
    コメント
この記事は最終更新日から1年以上が経過しています。

Objective-C のプロパティの属性を指定するとき、下記ことがあります。

タイプ オプション 説明
独自メソッド名 getter=(独自ゲッタ名) ゲッタ名を指定する
setter=(独自セッタ名) セッタ名を指定する
読み書き指定 readonly 読み取り専用
readwrite 読み書き可能(デフォルト)
値の持ち方 assign 代入で値を取得
retain オブジェクトを保持
unsafe_unretained (ARC) assign に同じ
strong (ARC) retain に同じ(デフォルト)
weak (ARC) 弱い参照
copy オブジェクトをコピーして設定
アトミック性 nonatomic 同時実行を許可
  • ARCを使わない場合はassignがデフォルト、使う場合はstrongがデフォルト。

  • retainは参照カウントが保持されて、assignは保持されないらしい。

参考:
http://kawairi.jp/weblog/vita/201312239804
http://qiita.com/uasi/items/80660f9aa20afaf671f3
http://nazo.hatenablog.com/entry/2012/05/30/objective-c-property