Ich sehe einen zeitweiligen Absturz bei [Parser-Release]. Ich würde sagen, ich sehe es etwa 5% der Zeit, und die Daten, die ich analysiere variiert zwischen den einzelnen Abstürzen. Ich kann nicht für das Leben von mir herausfinden, warum.EXC_BAD_ACCESS Absturz beim Freigeben von NSXMLParser
Bevor ich einen Fehlerbericht an Apple übergebe (was mit meinem Glück im Beispielcode nicht reproduzierbar sein wird), ist jemand darauf gestoßen und weiß, was passieren könnte?
NSData *d = [data copy]; // data is typically 2K-13K bytes
@synchronized (xmlParserLock) {
[[NSURLCache sharedURLCache] setMemoryCapacity:0];
[[NSURLCache sharedURLCache] setDiskCapacity:0];
NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init];
NSXMLParser *parser = [[NSXMLParser alloc] initWithData:d];
[parser setDelegate:self];
[parser setShouldProcessNamespaces:NO];
[parser setShouldReportNamespacePrefixes:NO];
[parser setShouldResolveExternalEntities:NO];
[parser parse];
[parser release];
[pool release];
}
[d release];
Und hier ist der GDB 'wo' Ausgang, der mit [Parser release]-Punkte:
#0 0x93d08d12 in xmlCharEncCloseFunc()
#1 0x93cfc0e3 in xmlFreeParserInputBuffer()
#2 0x93cfc08f in xmlFreeInputStream()
#3 0x93cfbdac in xmlFreeParserCtxt()
#4 0x961384d6 in -[NSXMLParser dealloc]()
#5 0x00149de7 in -[MyParserClass parseResponse] (self=0x104e9f0, _cmd=0x1766dc) at /Users/mike/Documents/MyApp/Classes/MyParserClass.m:60
Vielen Dank im Voraus für jede Hilfe!
Ist die Methode Fragment Sie hier in MyParserClass sind zeigt, und ist der [Parser release] auf der Leitung 60? –
Brent: Das ist richtig. –