I’m cleaning up my project and when I run it in the Allocations Instrument the reference count goes down to 0 but it’s never getting destroyed. Is there something I’m missing here in my clean up?
.h
@property (nonatomic, retain) NSObject *subParser;
.m
- (void)parser:(NSXMLParser *)parser
didStartElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qualifiedName
attributes:(NSDictionary *)attributeDict {
if([elementName isEqualToString:@"NewParser"]) {
MySubParser *aParser = [[NSXMLParser alloc] init];
self.subParser = aParser;
[aParser release];
}
}
- (void)parser:(NSXMLParser *)parser
didEndElement:(NSString *)elementName
namespaceURI:(NSString *)namespaceURI
qualifiedName:(NSString *)qName {
if([elementName isEqualToString:@"NewParser"]) {
[self.subParser release];
subParser = nil;
}
}
- (void) dealloc {
self.subParser = nil;
[super dealloc];
}
edit: corrected @property declaration in .h
The comment in the code below fixed it. Instead of the retain count going to 0 it was cleaned from the heap.
.h
.m