2012-04-06 11 views
0

サムネイルを読み込んだ後にアプリケーションがクラッシュしています。この行では、コードは画像(サムネイル)をダウンロードしています画像を読み込んだ後にアプリケーションがクラッシュする

else if ([tempTagName isEqualToString:@"Unicorn"]) 
      { 

       bottomIndexPage.unitArr = [[NSMutableArray alloc] init]; 
       NSArray *tempArr = [tempTagValue componentsSeparatedByString:@","]; 

       for (int i = 0; i<[tempArr count]; i++) 
       { 

        [bottomIndexPage.unitArr addObject:[[NSString alloc] initWithString:[tempArr objectAtIndex:i]]]; 

       } 

出力ではクラッシュメッセージが表示されません。これは、サムネイルをロードする必要がありますが、このアプリは(90 + - サムネイル)ダウンロードすることにより、クラッシュし、ここで

if (!loadXmlFromWeb) 
    { 
     xmlTextReaderPtr xmlreader = xmlReaderForMemory([xmlData bytes], 
                 [xmlData length], 
                 [path UTF8String], nil, 
                 (XML_PARSE_NOBLANKS | XML_PARSE_NOCDATA | XML_PARSE_NOERROR | XML_PARSE_NOWARNING)); 
     [self xmlParseProc:xmlreader]; 
    } 
} 

答えて

1

まずに私はそれが何かだと思う

を:このコードが漏れます。 [[ NSString alloc ] initWithString: s ]を使用すると、処理する担当オブジェクトが返されます。そのようなループでは、自動解放された文字列:[ NSString stringWithString: s ]を使うべきです。

しかし、この場合、新しい文字列値はまったく必要ありません。 -componentsSeparatedByString:はすでにあなたの文字列値を準備しています。 tempArrの値を挿入するためのループは必要ありません。ただ、やる:

[ bottomIndexPage.unitArr addObjectsFromArray: tempArr ]; 
+0

私はあなたが 'xmlReaderForMemory'の戻り値をチェックしていない気づくメッセージ – Frenck

+0

の私の編集を参照してください。エラーが発生していて、 'xmlreader'ポインタがNULLである可能性があります。そのNULLポインタを逆参照するものは、クラッシュを引き起こします。あなたの '-xmlParseProc'メソッドは、あなたが投稿した小さなコードの断片がどこにあるのかわかりませんが、おそらく原因です。 –

関連する問題