gpt4 book ai didi

iphone - XMLParser 版本在后台线程 iOS 5.1.1 中崩溃

转载 作者:行者123 更新时间:2023-11-28 22:51:16 27 4
gpt4 key购买 nike

在我的应用程序中,我在后台线程中从服务器下载 XML 数据,并解析和更新数据库表

后台线程将在应用程序启动时创建并保持运行。

但问题是在 NSXMLParser 对象发布期间,我收到 EXC_BAD_ACCESS (SIGSEGV)这是 XML 解析器代码:

    - (void)parseXMLWithData:(NSMutableData *)pObjXMLBufferPtr
{
@try
{
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];

NSMutableData *lTempData = [pObjXMLBufferPtr copy];
NSXMLParser *lObjXMLParserPtr = [[NSXMLParser alloc] initWithData:lTempData];
[lTempData release];

[pObjXMLParserPtr setShouldResolveExternalEntities: YES];
[pObjXMLParserPtr setDelegate: m_cObjSAXHandler];
//m_cObjSAXHandler is my custom class. here is declaration SAXHandler :
NSObject<NSXMLParserDelegate>
[pObjXMLParserPtr parse];

[lObjXMLParserPtr setDelegate:nil];
[lObjXMLParserPtr release];
lObjXMLParserPtr = (NSXMLParser *)nil;
}
@catch (NSException *ex)
{
NSLog(@"parseXMLWithData Exception!!!");
}
}

Here is the crash log:
0 libicucore.A.dylib 0x34c00578 ucnv_close + 28
1 libxml2.2.dylib 0x342a81ba xmlCharEncCloseFunc + 30
2 libxml2.2.dylib 0x342c62d0 xmlFreeParserInputBuffer + 28
3 libxml2.2.dylib 0x342aacbc xmlFreeInputStream + 108
4 libxml2.2.dylib 0x342aace4 xmlFreeParserCtxt + 12
5 Foundation 0x37d14b22 -[NSXMLParser dealloc] + 158

请帮我解决这个问题。

最佳答案

您将在 parse 方法之后释放解析器并将其委托(delegate)设置为 nil。解析也在内部后台进行,因此您必须等待解析结束。

您可以在parserDidEndDocument 方法中设置一些通知或调用方法来释放解析器。

希望这对您有所帮助。

关于iphone - XMLParser 版本在后台线程 iOS 5.1.1 中崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11951291/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com