2012-01-17 10 views
0

このNSXMLParser parseメソッドが漏れている理由はわかりません。 他の同様のSOの質問を見ましたが、解決できませんでした。NSXMLParser解析メソッドメモリリーク

ここに私のコードです。

- (void)parseXMLFileAtURL { 
self.results = [[NSMutableArray alloc] init]; 

NSURL *xmlURL = [NSURL URLWithString:@"http://www.dukascopy.com/swiss/video/rss/"]; 
    NSData *dataXml = [[NSData alloc] initWithContentsOfURL:xmlURL]; 
NSXMLParser *MyrssParser = [[NSXMLParser alloc] initWithData:dataXml]; 
[dataXml release]; 

[MyrssParser setDelegate:self]; 


[MyrssParser setShouldProcessNamespaces:NO]; 
[MyrssParser setShouldReportNamespacePrefixes:NO]; 
[MyrssParser setShouldResolveExternalEntities:NO]; 

[MyrssParser parse]; // memory leak here 
MyrssParser.delegate=nil; 
[MyrssParser release]; 
if(!imagesArray) 
{ 
    imagesArray = [[NSMutableArray alloc] initWithCapacity:[self.results count]]; 
    for(int i=0;i<[results count];i++) 
    { 
     UIImage *image = [UIImage imageNamed:@"nophoto.png"]; 
     [imagesArray addObject:image]; 
     bImgExist[i] = NO; 
    } 
} 

    } 

私のNSXMLParserオブジェクトインストゥルメントを解放しても、まだメモリリークが表示されます。私がここで行方不明です何 ...

+0

XcodeメニューからProduct-> Analyzeを選択して、アナライザーを実行します。結果を投稿する。 – NJones

答えて

3
self.results = [[NSMutableArray alloc] init]; 

プロパティは、その割り当てられた値の所有権(その宣言による)を取ります。したがって、このプロパティを設定する配列はself(ここではプロパティがretainまたはcopyのいずれかであると仮定しています)に保持されますが、初期化から+1の保持カウントを既に持っています。

変更行に:

self.results = [NSMutableArray array]; 

とメモリリークが解消すべきです。

+1

私は上記の変更を行いましたが、まだメモリリークを示しています.. :( –

+0

あなたのコードサンプルで唯一のメモリリークです他のリークは他のコードから来ている必要があります –

+0

リリースしていない場合は 'imagesArray' 'dealloc'メソッドで – murat

関連する問題