Очистка пользовательских настроек по умолчанию программно в приложении OS X
Я работаю над бета-версией своего приложения, и мне нужно быть уверенным, что при первом запуске финального выпуска пользователи, прошедшие бета-тестирование, запустят приложение с полностью понятным пользовательским набором по умолчанию... (я не могу изменить идентификатор пакета).
1) Есть ли способ очистить пользовательские настройки по умолчанию программно?
2) Поможет ли мне песочница этого приложения для отправки в App Store?
2 ответа
Вы можете удалить это так:
NSString *appDomain = [[NSBundle mainBundle] bundleIdentifier];
[[NSUserDefaults standardUserDefaults] removePersistentDomainForName:appDomain];
Чтобы запустить его при первом запуске, я бы просто установил флаг BOOL. Один из способов сделать это заключается в следующем:
- (void)applicationDidFihishLaunching
{
NSUserDefaults *prefs = [NSUserDefaults standardUserDefaults];
if ([[prefs objectForKey:@"secondOrMoreTimeLoading"]boolValue]==0) //so if there is nothing there...
{
NSLog(@"This is the first time the user has loaded the application. Welcome!");
//run the code above here, then change our flag to 1 so that it never runs this again (unless the prefs are reset elsewhere)
[prefs setObject:[NSNumber numberWithBool:1] forKey:@"secondOrMoreTimeLoading"];
}
else{NSLog(@"Welcome back, user.");}
}
Что не так с + [NSUserDefaults resetStandardUserDefaults]? Если вы зарегистрировали свои значения по умолчанию правильно, эта единственная строка будет сброшена к зарегистрированным вами значениям по умолчанию.