[前提条件]
- xcode4.5以上を使用する。
[ポイント概要]
- プロパティ記述時の属性(retain assign copy)を使い分ける
- alloc時にはautoreleaseを記述する
- 自クラス内のインスタンス変数へアクセスする時はプロパティを使用する
- retain、copy属性のプロパティはdealloc内でnilを代入する
[ポイント詳細]
ポイント1:プロパティの記述時の属性(retain assign copy)を使い分ける
ヘッダーファイルのクラス宣言内に記述するプロパティの属性を正しく使い分けます。- object型はretainを指定する
- NSString型はcopyを指定する
- プリミティブ型はassignを指定する
- delegateはassignを指定する
※Objective-Cで使用できる主なプリミティブ型
short (signed short)
unsigned short
int (signed int)
unsigned int
float
double
char
BOOL
ポイント2:alloc時にはautoreleaseを記述する
オブジェクトをallocしたら必ずautoreleaseを記述します。ポイント3:自クラス内のインスタンス変数へアクセスする時はプロパティを使用する
プロパティを使用しない場合、メモリリークや解放済みのオブジェクトへのアクセスが発生する可能性が高くなります。ポイント4:retain、copy属性のプロパティはdeallocないでnilを代入する
retain、copy属性が指定されたプロパティはdeallocでnilを代入しないとメモリリークが発生してしまいます。◎autoreleaseを記述しない方がいい場合
例外としてループ(for、while)内でオブジェクトを生成する場合はメモリ節約の観点からautoreleaseを使用しない方が良いでしょう。
0 件のコメント :
コメントを投稿