自己紹介

自分の写真
最近、iphoneアプリをリリースしました。
UxU
無料アプリですので、是非遊んで下さい。 第二弾アプリ:工場夜景写真集 今後も色々なアプリをリリースしていく予定です。
次は、コスプレ or 漫画 or 騎乗日記

2011年2月21日月曜日

NSStringでもクラッシュする場合がある!? =iOS開発=

通常、NSStringを使う場合は、releaseを自動的に行うのですが,

例)
NSString* img1 = [NSString stringWithFormat:@"%@",IMG_AVATER_HAIR_FRONT1];

上記の変数をループで乱発させるとメモリ不足で落ちる場合があります
で、どのように解決するかというと

NSString* img1 = [[NSString alloc]initWithFormat:@"%@",IMG_AVATER_HAIR_FRONT1]];
[img1 release];

としても良いのですが、全てのNSStringに対して行うのは、非効率なので何か良い方法
はないかと探したところ、NSAutoreleasePoolというクラスがあり、

  NSAutoreleasePool* pool = [[NSAutoreleasePool alloc] init];
NSString* img1 = [NSString stringWithFormat:@"%@",IMG_AVATER_HAIR_FRONT1];
:
:
[pool release];
とすることで、間に挟んだautoreleaseする変数を一括でリリースしてくれます。
よって、メモリがなくなり落ちるという事が解消できます。

0 件のコメント:

コメントを投稿