例)
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];とすることで、間に挟んだautoreleaseする変数を一括でリリースしてくれます。
NSString* img1 = [NSString stringWithFormat:@"%@",IMG_AVATER_HAIR_FRONT1];
:
:
[pool release];
よって、メモリがなくなり落ちるという事が解消できます。
0 件のコメント:
コメントを投稿