Вы можете симулировать предупреждение о нехватке памяти из симулятора, выбрав Оборудование >> Имитация предупреждения о памяти.
А из IOS 6 при нехватке памяти viewDidUnload не будет вызываться. Поэтому вам нужно управлять тем, что может освободить всю память, переопределив предупреждение метода didreceivememory.
Важно понимать, что после viewDidUnLoad снова вызывается viewDidLoad. Таким образом, вы должны предположить, что viewDidLoad будет получать несколько раз в жизненном цикле ViewController.
Скажем, вы не используете дугу и выделяете массив, через некоторое время из-за нехватки памяти снова вызывается viewDidLoad, на этот раз вы снова создаете массив, чем он вызовет утечки памяти.