Я освобождаю оба объекта в dealoc и устанавливаю их равными nil в viewDidUnload
Я мог бы неправильно понять грамматику предложения, но
Вы должны освободить и с нулевым значением в и dealloc и viewDidUnload.
Как правило, вы должны всегда сбрасывать и устанавливать nil как пару, если у вас нет особых причин не делать этого.