Использование приложения-делегата кажется «старой школой», но я думаю, что это плохая привычка. Вы превращаете делегат приложения в гигантскую глобальную переменную, которая никогда не бывает хорошей.
Хранение в NSUserDefaults работает, хотя, если это не тот параметр, который вы хотите сохранить (и вы, возможно, не учли соображения безопасности), это может вернуться к вам позже.
Я хардкор: я бы создал экземпляр класса модели данных в вашем делегате приложения для хранения подобной информации, и передавал бы его вашему корневому контроллеру представления и далее любым другим контроллерам представления, которым необходим доступ к информации. Преимущества? Никаких глобальных переменных, ничего не сохраняется для пользовательских настроек по умолчанию, и только те части вашего кода, которые действительно нуждаются в информации, когда-либо видят ее (уменьшает действие на расстоянии). Недостатки? Не так легко настроить, как другие два метода (по крайней мере, в первый раз).