Perfect. The trace shows you where these objects were created, which is great. I suspect that the real problem is with the "Provider" class - it probably retains these strings (or puts them in "retain" properties) and never releases them.
Does the "Provider" class have a dealloc method? It probably should, and it should look something like this:
Code:
- (void)dealloc {
[name release];
[lastname release];
self.city=nil; //this is the same as [city release] if city is a "retain" property.
[super dealloc];
}
That way, all of the objects retained by the provider can b released when the provider is deallocated. That [super dealloc] is one of the few times that you call dealloc yourself instead of just release.