2012-04-06 58 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

請參閱我的消息 – Frenck 2012-04-06 15:49:29

+0

我注意到你不檢查xmlReaderForMemory'的'返回值的編輯。有可能你得到一個錯誤,你的'xmlreader'指針是NULL。任何解引用NULL指針都會導致崩潰的東西。你的'-xmlParseProc'方法是一個可能的罪魁禍首,儘管我不知道你在哪裏發佈了小代碼片段。 – 2012-04-09 14:00:52