2015-03-08 5 views
-1

Я использую HockeyApp и Ship.io для развертывания моего приложения ios для нескольких тестеров при каждой сборке. В моей последней сборке я изменил типы данных некоторых объектов, которые я сохранил в NSUserDefaults, и теперь он сбой, потому что старые данные, хранящиеся на локальном устройстве everyones, сталкиваются с этим изменением. Этот сбой исчезает, когда человек удаляет приложение и переустанавливает с нуля (bc userdefaults очищается)Как очистить NSUserDefaults от обновленного приложения

Я хочу, чтобы какая-то логика очистки, чтобы NSUserDefaults очищались, когда люди обновлялись до последней версии. Как я могу это сделать?

ответ

2

Я хотел бы проверить, если старый ключ существует, и если он сбрасывается по умолчанию с помощью:

NSString *domainName = [[NSBundle mainBundle] bundleIdentifier]; 
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:domainName]; 

(типизированных на мобильный так жаль, если форматирование отстой)

1

Что относительно этого?

-(void)removeNSUserDefaults { 


    NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults]; 

    [defaults removeObjectForKey:@“yourkey1”]; 
    [defaults removeObjectForKey:@“yourkey2”]; 
    //do this for all your keys.. 
    [defaults synchronize]; 

} 

просто удалить объекты из словаря

+0

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

+1

Да, логический ключ для «первого запуска» был бы одним из способов сделать это – Kex

 Смежные вопросы

  • Нет связанных вопросов^_^