Eu tenho um aplicativo para iPhone que tem um sqlLite Core Datamodelo pré-carregado com dados padrão. Quero permitir que o usuário restaure esses dados padrão se eles tiverem modificado ou excluído registros do modelo, mantendo todos os novos registros adicionados ao modelo pelo usuário.
O banco de dados sqlLite é copiado para os usuáriosdiretório de documentos na primeira execução, para que o banco de dados original intocado esteja disponível no pacote do aplicativo. Qual é a maneira mais fácil de copiar registros entre os dois bancos de dados? Suponho que isso envolve a configuração de um persistentStoreCoordinator adicional ou a adição do dB original ao coordenador como um persistentStore adicional, mas os documentos são breves em como fazer isso.
Obrigado,
Jk
Respostas:
1 para resposta № 1Se você não quiser excluir o repositório de destino e substituí-lo, o fluxo de trabalho será:
- Levante uma segunda pilha de dados principais com o armazenamento persistente de origem.
- Buscar cada entidade da fonte.
- Procure o objeto no destino.
- Se existir, atualize-o.
- Se não, crie.
- Salve a loja de destino.
Dependendo da quantidade de dados que você tem, isso pode ser uma operação muito cara.