ARC を使用する場合、たとえばretain
やなどの修飾子を使用する必要はありません。この種のメモリ管理は、修飾子と修飾子copy
を使用して自動的に行われます。strong
weak
dealloc
メソッドの記述についても心配する必要はありません。
strong
は と同じようなものなretain
ので、アウトレットをそれでマークする必要があります
@property(nonatomic, strong) IBOutlet UIButton *bt;
これが、インターフェイス ビルダーがデフォルトで作成する方法です。
それらのセマンティックの違いについては詳しく説明しませんが、何が起こっているのかを知りたい場合や修飾子の詳細について知りたい場合は、 Apple の ARC への移行に関するガイドを参照してください。strong
weak
編集:
申し訳ありませんが、インターフェースビルダーはweak
デフォルトでアウトレットを作成します。
編集 2:
strong
実際にretain
は 100% 同一です。(@アダムに感謝)
EDIT 3:エラーが発生nil
しないようにmessage sent to deallocated instance
ポインタ
を設定します。BAD_ACCESS_EXCEPTION
実際に ARC を使用している場合は、 の(nonatomic, weak)
代わりにアウトレットを作成する必要があります(nonatomic, strong)
。ゼロ化ポインターを使用することにより、コンパイラーは、他に何も参照されていないときにweak
アウトレットを自動的に設定します。nil
要約すると、プロパティを使用しない場合は、ポインタを nil に設定する必要があります。weak