Question: My base class has properties that are used by a subclass. where should Release be called? In the original base class or the class that inherits it?

Answer: 
I would say that each class manages it's own properties. So subclass class should release it's properties and base class releases it's own.

Once subclass is released it will not access base class properties, it technically does not exists anymore. Standard way of writing dealloc is:

```
- (void)dealloc
{
   // release my stuff, after this line
   // I don't exist and do not need to access any of my properties
   [super dealloc];
}

```
I'm pretty new to Objective-C, so I'm also curious what the best answer is here. I would think that you should set the property to `nil` in the parent class `-dealloc`, where the property is synthesized. If you're retaining it in the subclass for some reason, you should also release it in the subclass, but setting the property to `nil` in the superclass shouldn't have any negative side effects.