NSUserDefaults может обрабатывать только объекты NSDictionary, NSData, NSArray, NSString и BOOL.(Там может быть другой, не уверен). Если вам нужно сохранить объект с несколькими значениями, например, массив или словарь, я сначала сохраню ваши настройки там, а затем сохраню их по умолчанию.
Ваш код выглядитштраф за хранение информации по умолчанию для пользователя.Просто убедитесь, что вы указали тип вашего объекта перед сохранением.(id) не будет работать ... или не будет работать должным образом.