No Xcode 4, se você vir apenas uma versão do seu modelo de dados na seção "Modelo de dados principal com versão - Atual" do inspetor de arquivos quando tiver seu arquivo * .xcdatamodeld selecionado; ou você tem uma segunda versão do seu arquivo * .xcdatamodel mostrando fora do pacote xcdatamodeld no navegador de projeto do Xcode, leia abaixo.
Para corrigir isso:
1) Remova as referências * .xcdatamodeld e * .xcdatamodel do Xcode clicando com o botão direito do mouse nelas no navegador do projeto e pressionando "Excluir".
2) Quando solicitado pelo Xcode, clique em Remover apenas referências (muito importante).
3) Reinicie o Xcode para uma boa medida, caso haja algum cache em andamento.
4) Adicione novamente o arquivo * .xcdatamodeld único que contém os arquivos * .xcdatamodel.
O Xcode agora deve reconhecer os relacionamentos e permitir que você expanda o arquivo * .xcdatamodeld no navegador do projeto para mostrar os dois arquivos * .xcdatamodel no pacote pai xcdatamodeld, mostrando também uma marca de seleção verde ao lado do modelo atual. Isso também deve permitir que você selecione a versão atual do modelo de dados no inspetor de arquivos, em vez de mostrar apenas uma versão.
Não há nada como "modelo de dados do núcleo com versão" na "Biblioteca de Objetos". A primeira resposta (de Mac_Cain13) está correta, embora pareça ter um erro estranho, pois meu modelo está fora do .modeld no Xcode.
StuFF mc
@StuFFmc - Confira meu post abaixo para corrigir o problema do arquivo xcdatamodel estar fora do pacote xcdatamodeld no navegador de projeto do Xcode.
25412 Andrew
2
A pesquisa na "Versão atual" da Ajuda do Xcode gera uma receita "Definindo a versão atual de um modelo de objeto gerenciado", que descreve como fazer isso ...
Um pouco fora de tópico, mas se você chegou a essa pergunta para saber como criar uma primeira nova versão do seu modelo (como eu fiz): clique no arquivo xcdatamodel >> Menu "Editor" >> Adicionar versão do modelo
Respostas:
fonte
No Xcode 4, se você vir apenas uma versão do seu modelo de dados na seção "Modelo de dados principal com versão - Atual" do inspetor de arquivos quando tiver seu arquivo * .xcdatamodeld selecionado; ou você tem uma segunda versão do seu arquivo * .xcdatamodel mostrando fora do pacote xcdatamodeld no navegador de projeto do Xcode, leia abaixo.
Para corrigir isso:
1) Remova as referências * .xcdatamodeld e * .xcdatamodel do Xcode clicando com o botão direito do mouse nelas no navegador do projeto e pressionando "Excluir".
2) Quando solicitado pelo Xcode, clique em Remover apenas referências (muito importante).
3) Reinicie o Xcode para uma boa medida, caso haja algum cache em andamento.
4) Adicione novamente o arquivo * .xcdatamodeld único que contém os arquivos * .xcdatamodel.
O Xcode agora deve reconhecer os relacionamentos e permitir que você expanda o arquivo * .xcdatamodeld no navegador do projeto para mostrar os dois arquivos * .xcdatamodel no pacote pai xcdatamodeld, mostrando também uma marca de seleção verde ao lado do modelo atual. Isso também deve permitir que você selecione a versão atual do modelo de dados no inspetor de arquivos, em vez de mostrar apenas uma versão.
fonte
Para o Xcode 4.2
Clique em YourModel.xcdatamodeld
Tornar o painel lateral visível
Em "modelo de dados do núcleo com versão", selecione a "caixa suspensa atual", selecione seu modelo de dados.
Agora a marca verde é movida para o seu modelo de dados atual.
fonte
A pesquisa na "Versão atual" da Ajuda do Xcode gera uma receita "Definindo a versão atual de um modelo de objeto gerenciado", que descreve como fazer isso ...
fonte
Um pouco fora de tópico, mas se você chegou a essa pergunta para saber como criar uma primeira nova versão do seu modelo (como eu fiz): clique no arquivo xcdatamodel >> Menu "Editor" >> Adicionar versão do modelo
Isso iniciará a versão do modelo.
fonte
Isso funcionou para mim: https://developer.apple.com/library/mac/recipes/xcode_help-core_data_modeling_tool/Articles/setting_current_version.html
selecionando a versão do modelo de dados principal
Agora, minha migração automática de modelo de banco de dados funciona (com o código de migração automática no delegado).
fonte
Você também pode usar o método setter da CoraData ...
Basta fazer algo assim ...
No seu CustomCoreDataManager.m :
e chame o método init como este
fonte