Как восстановить сохраненные данные до значений по умолчанию?

Я реализую сохраненные данные в своем приложении с помощью NSUserDefaults, например:

[[NSUserDefaults standardUserDefaults] registerDefaults:[NSDictionary dictionaryWithObjectsAndKeys:[NSNumber numberWithInt:0],@"mySetting",nil]]; // check int firstLaunch = [[NSUserDefaults standardUserDefaults] integerForKey:@"mySetting"]; // set [[NSUserDefaults standardUserDefaults] setInteger:1 forKey:@"mySetting"]; 

Теперь для целей разработки я хотел бы удалить сохраненные данные и вернуться к значениям по умолчанию, без необходимости удалять приложение и переустанавливать его каждый раз. Есть ли быстрый способ сделать это? Я думал, что resetStandardUserDefaults выполнит эту работу, но это не так.

Для ключа, который вы хотите вернуть к умолчанию, -removeObjectForKey: удалит его определение из настроек приложения. При прочих равных условиях это означает, что последующие вызовы -<type>ForKey: возвращают зарегистрированный по умолчанию.

Следующий фрагмент работал для меня.

 NSDictionary *defaultsDict = [[NSUserDefaults standardUserDefaults] dictionaryRepresentation]; for (NSString *key in [defaultsDict allKeys]) [[NSUserDefaults standardUserDefaults] removeObjectForKey:key]; [[NSUserDefaults standardUserDefaults] synchronize]; 

Вы пытались перезагрузить значения по умолчанию после вызова сброса? как говорит PEZ:

например

 [NSUserDefaults resetStandardUserDefaults]; [NSUserDefaults standardUserDefaults]; 

Это очищает все значения по умолчанию и нагрузки в стандартном наборе.

Если вы хотите только добавить одно значение, как кажется из вашего фрагмента, то предложение Грэма о -removeObjectForKey проще.

EDIT: исправлено мое злоупотребление методами класса.

Документы должны сказать об resetStandardUserDefaults:

Последующий вызов standardUserDefaults создает новый объект по умолчанию для общих пользователей по умолчанию со стандартным списком поиска.

С некоторым положительным (желаемым?) Мышлением, похоже, что это будет то, что вам нужно. знак равно

  • Как изменить размер изображения в соответствии с ячейкой UITableView?
  • Почему UIPopoverController не является подклассом UIViewController?
  • Обработка openURL: с помощью Facebook и Google
  • Применение маски CAShapeLayer к UIView
  • Использование раскадровки Xcode приводит к зависанию Xcode, а интерфейс Builder Cocoa Touch Tool - к 99%
  • Расширение Share для открытия приложения
  • Не удалось загрузить файл в приложении iOS; Ошибка какао 260
  • Отклики вызовов делегатов Push Notification не вызываются
  • @protocol vs Class Cluster
  • Как использовать UIApplicationDidBecomeActiveNotification
  • удалить границу uitextfield в uisearchbar
  • Interesting Posts

    Разделить UITableView на фиксированное количество ячеек

    Принудительное приложение для устройства iOS для общения через локальную сеть WIFI

    Найдите количество символов, которые вписываются в UITextView с постоянной шириной и высотой с заданной строкой?

    Как перехватить запросы ресурсов URL-адреса UIWebView

    gestureRecognizer shouldReceiveTouch, сохраняющийся в освобожденном виде, вызывающем сбой

    iOS – потоковая передача больших файлов для загрузки (сбой приложений при распределении слишком больших файлов с использованием NSData)

    Прокрутка прокрутки IOS -webkit-overflow на неправильной оси или вообще не

    Выполнение игровой площадки прекращено, потому что игровой процесс неожиданно вышел из игры

    Режим подсветки iPhone 5

    Уведомить пользователя о достижении (Достижимость Эшли Миллса)

    Eclipse Paho C Client SSL-соединение на iOS

    Как получить соглашение Apple об именовании @ 2x для изображений сетчатки для работы с приложением с рельсами?

    Sprite Kit SKShapeNode создает два узла вместо одного

    Представлять и масштабировать большие изображения на iOS без CATiledLayer

    UIDocumentInteractionController предотвращает Airdrop на листе «Открыть в»

    Давайте будем гением компьютера.