Я понимаю, что есть несколько вопросов о том, где хранить userDefaults, чтобы они были доступны всем. В настоящее время у меня есть в AppDelegate, и он работает. Однако теперь я хочу обновить настройку по умолчанию для каждого пользователя.Где я должен хранить NSUserDefaults, чтобы обновить их?
Однако, когда пользователь выходит из приложения и запускает его снова, он просто создает значения по умолчанию с нуля.
#import "AppDelegate.h"
@implementation AppDelegate
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
// Override point for customization after application launch.
NSUserDefaults *sharedPref = [NSUserDefaults standardUserDefaults];
[sharedPref setObject:@"Washington, DC" forKey:@"defaultLocation"];
//
return YES;
}
Очевидно, что это устанавливается каждый раз, когда приложение открывается, что делает выбор пользователей устаревшим.
Как вы можете установить значение по умолчанию, а затем разрешить пользователю изменять его без него, а затем перезаписывать при запуске приложения?
Благодаря
Это то, что registerDefaults для. Когда вы регистрируете значение по умолчанию, оно только записывает их, если по умолчанию этот ключ еще не существует. – rdelmar
@rdelmar 'registerDefaults' ничего не пишет. Когда вы пытаетесь получить значение из 'NSUserDefaults', если значение для ключа было явно задано, это значение возвращается. Если для ключа нет значения, то для ключа отмечены зарегистрированные значения по умолчанию. – rmaddy
@rmaddy, спасибо за эту коррекцию. Я работал под непониманием работы registerDefaults. Я должен был прочитать документацию немного ближе. – rdelmar