Pergunta

Para meu aplicativo atual que estou usando a abordagem NSKeyedArchiver persistir meus objetos para o iPhone entre lançamentos. Eu estou querendo saber se faz sentido para marcar esse arquivo quando ele é criado com um número de versão para que no futuro, quando as rotações de aplicativos saberemos que tipo de dados que estamos lidando com deve migração seja necessário. É este recomendado para algo tão simples como um NSArray de objetos personalizados que são serializados com NSKeyedArchiver? Se assim como / onde para guardar o número da versão?

Obrigado!

Foi útil?

Solução

Se você se sentir como o formato vai mudar, então sim, você vai querer alguma forma de detectar qual versão do arquivo que você está trabalhando. Uma maneira simples de fazer isso (desde que você está usando NSArray) seria a de simplesmente adicionar o número da versão como um NSNumber ao início ou final da matriz. Alternativamente, para uma abordagem mais complicado que na verdade não alterar os arquivos, você pode armazenar as informações em um arquivo separado (por exemplo, usando um NSDictionary que liga o nome do arquivo eo número da versão). Ou, você pode usar o sistema padrões do usuário para armazená-lo, e se é frome uma versão mais antiga, atualize o arquivo ea chave padrões do usuário.

Eu não usaria o segundo método, a menos que você está lidando com vários arquivos de dados com chave. Desses três, eu provavelmente escolher o último, mas pode haver alguma outra maneira de fazer isso que faz mais sentido.

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