Если вам нужно использовать переменные, такие как массивы или наборы, лучше не использовать NSUserDefaults, поскольку при синхронизации они сохраняют все сохраненные значения на диск (конечно, если вам не нужно сохранять их на диск).Если вам нужно хранить большие объемы данных в графах объектов с такими отношениями, как это
User
-name
-lastname
-email
-messages
Message
-date
-text
Тогда вам лучше начать изучать инфраструктуру CoreData, она очень проста в использовании и позволяет хранить большие наборы данных на диске.и получить к ним быстрый доступ.
Если вам просто нужен какой-то класс, который, например, будет хранить текущие значения профиля пользователя, такие как имя пользователя, адрес электронной почты и т. д. Попробуйте создать одноэлементный класс - который почти не отличается от использования AppDelegate, ноэто намного понятнее, когда вы разделяете свои данные на более мелкие куски.
В любом случае я написал этот ответ, основываясь только на своих предположениях.Было бы неплохо узнать, с какими типами данных вы работаете и каков их жизненный цикл в вашем приложении.