Como registrar padrões do usuário usando o NSUserDefaults sem substituir os valores existentes?

Eu tenho uma classe AppDelegate com+(void)initialize método que eu uso para registrar alguns padrões. Aqui está o código que eu uso:

+ (void)initialize {
  NSDictionary *defaults = [NSDictionary dictionaryWithObjectsAndKeys:@"NO", @"fooKey", @"YES", @"barKey", nil];

  [[NSUserDefaults standardUserDefaults] registerDefaults:defaults];
}

Também criei Preferences.xib, que contém duas caixas de seleção (NSButton) que exibem o status das preferências. Eles são obrigados aNSUserDefaultsController com as mesmas teclas (fooKey e barKey neste caso). Sempre que inicio um aplicativo e altero os "padrões", eles são restaurados no próximo lançamento do aplicativo.

Existe uma maneira de registrar "padrões padrão" sem substituir os valores já existentes? Talvez cada vez que eu crie e inicie um aplicativo, seu arquivo de preferências esteja sendo recriado? Talvez eu deva desvincular caixas de seleção deNSUserDefaultsController e manter os valores das chaves eu mesmo com algum código personalizado no controlador de janela de preferências?

Gostaria de ouvir sua implementação de escolha para manter os padrões do usuário.

Estou usando o Mac OS X 10.6.2 e o XCode 3.2.1

questionAnswers(1)

yourAnswerToTheQuestion