I’m working on a piece of code that GETs a URL and parses the contents for data between a asset of tags. In this case, it’s looking for the code between and . When the URL body returned doesn’t contain those tags, the cullXML: method returns an empty array like this:
return [NSArray arrayWithObjects: nil];
I check to be sure that the returned array has objects with:
if ( matchesXML.count ) {
In my debug code, I check twice. The first time, it works fine. The second time, just a couple lines later, it crashes. I can’t see why. The lines look the same to me.
What am I missing?
A bigger chunk of the code is included below. Thanks!
if (self.newResults) {
NSString *urlResult;
NSArray *matchesXML;
NSArray *match;
NSDictionary *currentResult;
NSMutableDictionary *results = [[NSMutableDictionary alloc] init];
NSArray *returnedObjects;
NSArray *dictionaryKeys;
NSMutableArray *currentResultObjects;
int i = 0;
// determine tournament type, because the fields are different per type
NSString *tournamentType;
tournamentType = [[AFMethods tournamentTypeFromId:self.inputTournamentId] objectAtIndex:0];
urlResult = [NSString stringWithFormat:@"%@", responseHandle];
[responseHandle release];
NSLog(@"urlResult retrieved: %@", urlResult);
matchesXML = [AFMethods cullXML: urlResult forTag: @"matches"];
NSLog(@"matches loaded: %@", matchesXML);
NSLog(@"matchesXML.count %i", matchesXML.count);
if ( matchesXML.count ) {
NSLog(@"not nil");
}
NSLog(@"just before tested");
if ( matchesXML.count ) {
NSLog(@"tested");
I found the issue!
It wasn’t crashing where I thought. It was a couple lines later. I was releasing an auto-released object. It must have been a left-over line from a previous organization of the code.
I removed the release and it’s working perfectly again.