2014-10-15 2 views
0

С iOS 8.x пользовательские проблемы имеют странное поведение. Всякий раз, когда я «выхожу» из своего приложения через приложение-коммутатор, мои пользовательские идентификаторы сбрасываются.iOS 8.0: NSUserDefaults сбрасывает

На iOS 7.x это работает как шарм, так что надеюсь, что вы, ребята, можете мне помочь.

Некоторые код из App делегата:

if ([[NSUserDefaults standardUserDefaults] objectForKey:@"FirstStart"]) 
    { 
     [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"FirstStart"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 
    else 
    { 
     [[NSUserDefaults standardUserDefaults] setBool:YES forKey:@"FirstStart"]; 
     [[NSUserDefaults standardUserDefaults] synchronize]; 
    } 

Это один пример. У меня есть еще несколько фрагментов кода, где я храню что-то с идентификаторами пользователя (в основном, bools) и каждый раз, когда он сбрасывается.

Когда я начинаю с xCode, проблем нет.

В чем может быть проблема?

+0

Это через симулятор или устройство? Я заметил проблемы с использованием NSUserDefaults на симуляторе с xcode6. – shawnwall

+0

Проблема возникает с помощью устройства – TdoubleG

+0

Ух, это плохая новость. Вы проверили радар? – shawnwall

ответ

2

KILL ME !!!

В моем методе AppDelegate applicatinWillTerminate: приложение I называется

NSString * AppDomain = [[NSBundle mainBundle] bundleIdentifier];

[[NSUserDefaults standardUserDefaults] removePersistentDomainForName: appDomain];

Я не знаю, почему я удаляю UserDefaults, но в любом случае теперь он работает нормально!

+0

oops :) Ну, как я уже сказал, не забудьте, чтобы симулятор не сбросил идентификаторы пользователей при удалении приложения из него, так как это определенно проблема. – shawnwall

+0

Да, я понял, что уже :) – TdoubleG

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