I think that what you have to do is release name explicitly in the destructor:
EDIT: Was this one of the tutorials you looked at? It looks fairly decent for someone with previous programming experience.Code:-(void) dealloc { printf("Calling dealloc\n"); [name release] [super dealloc]; }