Eu li alguns artigos diferentes de solução de problemas e perguntas e respostas, onde o culpado é um arquivo de preferência corrompido para um aplicativo ou processo. Normalmente, a solução é excluir o arquivo de preferências incorretas e permitir que um novo arquivo de preferências padrão seja gerado ao reiniciar qualquer software que esteja se comportando mal.
Como um arquivo de preferências é corrompido? Isso é simplesmente um erro de leitura / gravação de baixo nível ou ocorre um erro de nível superior em alguns casos? É apenas XML malformado ou incorreto?
Acredito que plutil
poderia lhe dizer se há um erro sintático com o arquivo, mas, novamente, como foi introduzido o erro? Não sou claro sobre a fonte usual desses arquivos corrompidos. Obrigado.
-writeToFile:atomically:YES
("os dados são gravados em um arquivo de backup e, em seguida, assumindo que não há erros, o arquivo de backup é renomeado para o nome especificado"). Arename()
função POSIX garante que o arquivo existirá "mesmo se o sistema travar no meio da operação".Eu apostaria que em quase todos os casos, não há nada sintaticamente errado com o arquivo plist. As funções da Apple para carregar e salvar dados importantes recebem muita atenção e muito uso. Quase todo bug já foi encontrado e corrigido até agora.
O arquivo de preferências de um aplicativo (plist) está simplesmente armazenando algumas de suas estruturas de dados na memória no disco. Portanto, se o aplicativo tiver um bug que faça com que algo seja definido incorretamente, ele será salvo.
Muitas vezes, quando um aplicativo começa a se comportar mal, você pode simplesmente encerrá-lo e reiniciar. Isso redefine muitas partes e pode resolver o problema. No entanto, os arquivos de preferência são recarregados do disco; portanto, se a parte afetada do aplicativo foi salva com uma preferência persistente, a reinicialização do aplicativo não terá impacto: o valor incorreto será carregado novamente. É quando excluir o arquivo de preferências pode ajudar. É como reiniciar o aplicativo, mas para coisas que foram salvas.
Isso pode acontecer porque os programadores assumem que os dados de seu aplicativo estão corretos. Se uma cor puder ser escolhida apenas pelo usuário clicar em um controle de roda de cores padrão, provavelmente não fará nenhum trabalho extra para verificar se está correta antes de usá-la. (Em comparação, um aplicativo como o Safari faz uma tonelada de trabalho extra verificando tudo, porque ele carrega e arquivos funciona em linha reta fora da internet).
A vantagem é que quase sempre está correto, e é muito mais fácil se você assumir que os valores internos estão corretos. A desvantagem é que, se um valor ruim aparecer de alguma forma (como o usuário fez algo totalmente inesperado), as coisas podem dar errado até que tudo seja redefinido.
fonte
Como idoso com problemas de tecnologia, descobri que meu arquivo de preferências do iTunes estava corrompido e causava o surgimento do contrato de licença toda vez que eu abria o iTunes. Além disso, todas as minhas preferências tiveram que ser redefinidas. Acredito que as respostas acima estão corretas, pois pouco antes de ter esse problema, fui forçado a fazer desligamentos forçados do meu computador (problemas elétricos na área) e reiniciar / meio reiniciar várias vezes. Os pedidos foram encerrados antes da conclusão das instruções / gravação. Mas a correção para gerar um novo arquivo de preferências do iTunes foi mostrada on-line e muito fácil de executar. Isso resolveu o problema.
fonte