ログインしてさらにmixiを楽しもう

コメントを投稿して情報交換!
更新通知を受け取って、最新情報をゲット!

iPhone/iPod touch/iPad:開発者コミュのiOS4でのUIimageViewのメモリ管理

  • mixiチェック
  • このエントリーをはてなブックマークに追加
突然の書き込み失礼します。
1点質問です


UIImageViewとUIViewのメモリ管理に関してなのですが、
ImageViewの画像をプログラム内で差し替えるためクラスのインスタンス変数としてUIImageViewを持っているのですが、
iOS4以降にてサスペンド-レジューム後、deallocにてreleaseを行うと、既に解放されているとしてハングアップしてしまいます。
サスペンドしない場合、deallocにてreleaseがよばれ、正常に解放されます。

@interface hogeClass : UIViewController {
UIImageView *hogeImageView;
}

...

-(id) init {
...
hogeImageView = [[UIImageView alloc] initWithFrame:CGRectMake(0, 0, 320, 480)];
[hogeImageView setImage: nil];
[self.view addSubview:hogeImageView];
...
}

-(void) dealloc {
...
[hogeImageView release];
[super dealloc];
}


こんな感じでやってます。

ご解答よろしくお願いします。

コメント(2)

hogeimageViewをプロパティー宣言して見てはいかがでしょうか?
プロパティ宣言することによって、retain/releaseの不整合によるハングアップは起こりづらくなるみたいです。

もしくは、ループの中でないならViewのイニシャライズを
hogeimageView = {{{UIImageView alloc]initWIthFrame:self.View.bounds]autorelease];
とautoreleaseするのはどうでしょうか?

もちろん、きっちりreleaseするほうがいいんですが
ハングしちゃうよりは良いかと思います。
>Kozy様


解答ありがとうございます。

途中で画像(UIImage)を入れ替えるUIImageViewインスタンスのイニシャライズを
autoreleaseにて生成し、
dealloc内のreleaseを消した所、
無事解放処理がうまくいき、
Leaksにて検査しても
リークは検出されませんでした。
本当に有難う御座いました。

ログインすると、みんなのコメントがもっと見れるよ

mixiユーザー
ログインしてコメントしよう!

iPhone/iPod touch/iPad:開発者 更新情報

iPhone/iPod touch/iPad:開発者のメンバーはこんなコミュニティにも参加しています

星印の数は、共通して参加しているメンバーが多いほど増えます。