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

相关问题