私はiOSプログラミングを初めて利用しており、クライアント用のアプリケーションを開発しました。しかし、Instrumentsを使用してアプリケーションを実行すると、辞書が原因でメモリリークの問題が発生するようですが、リリースすればアプリケーションがクラッシュします。私は問題が何であるか分かりません。辞書によるiOSメモリリーク
これは楽器の画像です:http://www.flickr.com/photos/[email protected]/6791493522/in/photostream/
-(void) generateLiquidProductData:(NSArray*) liquidProduct {
int _count = 52;
self.liquidProductData = [[NSMutableArray alloc] initWithCapacity:_count];
for (int i = 0; i < _count; i++){
float x = i;
float y;
if ((liquidProduct != (id)[NSNull null]) && (liquidProduct != nil) && ([liquidProduct count] != 0)) {
y = [[liquidProduct objectAtIndex:i] floatValue];
y = round(y * 10000.0f)/10000.0f;
}
else {
y = 0.0;
y = round(y * 10000.0f)/10000.0f;
}
NSDictionary* _gotLiquidProduct = [NSDictionary dictionaryWithObjectsAndKeys:
[NSNumber numberWithDouble:x],X_VAL,
[NSNumber numberWithDouble:y],Y_VAL,
nil];
NSLog(@"This is y %.5f", y);
[self.liquidProductData addObject:_gotLiquidProduct];
}
}
行self.liquidProductData = [[NSMutableArray alloc] initWithCapacity:_count]; はリークの原因になります。セッターを使用するので、liquidProductDataプロパティが保持されていると、リークが発生します。 代わりにautoreleaseを追加するか、自動解放メソッド[NSMutableArray arrayWithCapacity:] – AmineG