Não NSUserDefaults persistem através de uma atualização para uma aplicação na AppStore?
-
08-07-2019 - |
Pergunta
Este é o caso? Fazer NSUserDefaults obter redefinir quando você enviar uma atualização para um aplicativo na App Store, ou eles são repostos?
Meu aplicativo é falhando quando atualizado, mas não falhando quando baixado totalmente -. Por isso estou tentando determinar o que poderia ser diferente na sessão atualizado para a sessão recém-baixado
Cheers, Nick.
Solução
Eles são geralmente não repõe a menos que o usuário exclui o aplicativo. Para os dados básicos, NSUserDefaults é a melhor maneira de salvar os dados como preferências, datas, cordas etc. Se você estiver olhando para salvar imagens e arquivos, o sistema de arquivos é uma aposta melhor.
Outras dicas
Creio que a resposta é sim, ele irá persistir. Isso também totalmente documentado no capítulo Diretório de aplicativos no iPhone OS da Apple Guia de Programação.
- resposta direta à pergunta postada: Sim.
- O seu problema: Seu aplicativo fica caiu devido a problemas de lógica. Suponha que você armazenar um objeto em padrões e os controlos de aplicativos que de valor no lançamento (ou noutro local). Em você atualizar você poderia mudar a maneira como ele é verificado ou usado, por exemplo, você espera um valor, mas o objeto é nulo, ou vice-versa. Isso pode causar um SIGABRT ou EXC_BAD_ACCESS.
Se você tivesse modelo Core Data e você mudou alguma coisa no seu modelo e atualizar, sem gestão da migração, que é, provavelmente, razão pela qual seu aplicativo trava na atualização ...
Eu tenho uma experiência semelhante. Nosso aplicativo armazena um número de versão no Settings.Bundle / Root.Plist. Este é exibido através do aplicativo Configurações do iPhone. O que descobrimos é que em um Instale o número da versão é carregado a partir do pacote app - portanto, o número da versão está correta. Em uma atualização no entanto o número da versão não muda. Isto dá a impressão de que o usuário está executando uma versão anterior do aplicativo. Não temos qualquer lógica ligada ao número da versão, é apenas para exibição (que poderia ser usado por funcionários de contact center o diagnóstico de falhas).
A nossa experiência é NSUserDefaults não ficar limpo quando um usuário atualiza nosso aplicativo, mas a exibição Configurações não é atualizado também.