Pergunta

Parece que a partir os pedaços que eu posso juntar que a resposta a esta será "não", então eu vou amplamente explicar o que estou tentando alcançar na (o provável) caso que eu estou tentando para martelo em um parafuso.

O que eu tenho em meu aplicativo é uma lista de extensões de arquivos válidos para ler, que eu estou recursivo através de um diretório para. Eu quero que isso seja uma preferência, então eu tenho o seguinte:

NSMutableDictionary *dic = [NSMutableDictionary dictionary];
[dic setObject:[NSMutableArray arrayWithObjects:@"pdf", @"rtf", @"txt", nil] forKey:@"validExtensions"];
[[NSUserDefaults standardUserDefaults] registerDefaults:dic];

e eu estou ligando o NSTableView a um NSArrayController que está ligado aos compartilhados padrões do usuário controlador ...

É este completamente a abordagem errada para ter uma lista customizável pelo usuário de extensões válidas? Tem eu entendi mal o papel de NSUserDefaults?

Foi útil?

Solução

A resposta à questão colocada no título é "Sim" ... mas, infelizmente, isso não ajudá-lo, porque a mutabilidade das estruturas de dados na loja NSUserDefaults reais apoio não é controlada pela mutabilidade do objetos que você passar com registerDefaults:.

Para valores de preferência que são eles próprios estruturas, a fim de mudá-los você tem que ler a estrutura antiga, faça uma cópia mutável de qualquer parte que você precisa para modificar, alterar, que, em seguida, defina essa estrutura como o novo valor. Infelizmente, isso não é bem adequada para ligações, para que' d precisa uma camada de cola que espelhos alterações em uma matriz ligada em prefs.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top