Не устанавливайте переменную на nil
до того, как выпустит ее, в противном случае сообщение release
удаляется, когда оно должно было быть отправлено объекту.
[someObject release];
someObject = nil;
Имейте в виду, что dealloc
- это последнее, что нужно вызвать до того, как ваш объект будет фактически освобожден, поэтому установка переменных на nil
часто не требуется.