From: Devin Coughlin
If your class only uses an instance variable for part of its lifetime, it may +maintain an invariant guaranteeing that the instance variable is always released +before -dealloc. In this case, you can silence a warning about a missing release +by either adding assert(_ivar == nil) or an explicit release +[_ivar release] (which will be a no-op when the variable is nil) in +-dealloc.
+