J'ai eu une base de données N'importe lequel de mon code pour les données de base provoque cette erreur. Merci pour toute suggestion! p> entitédescription code> et j'ai créé des données dedans. Ensuite, j'ai changé l'entité
entitydescription code>, ajouté Nouveau, supprimé l'ancien à l'aide de l'éditeur pour
xcdatamodeld code> fichier.
"Le modèle utilisé pour ouvrir le magasin est incompatible avec celui utilisé pour créer le magasin}" code>. Le détail est ci-dessous. Que dois-je faire? Je préfère tout supprimer dans le modèle de données et redémarrer Nouveau. P>
reason=The model used to open the store is incompatible with the one used to create the store}, {
metadata = {
NSPersistenceFrameworkVersion = 320;
NSStoreModelVersionHashes = {
Promotion = <472663da d6da8cb6 ed22de03 eca7d7f4 9f692d88 a0f273b7 8db38989 0d34ba35>;
};
NSStoreModelVersionHashesVersion = 3;
NSStoreModelVersionIdentifiers = (
);
NSStoreType = SQLite;
NSStoreUUID = "9D6F4C7E-53E2-476A-9829-5024691CED03";
"_NSAutoVacuumLevel" = 2;
};
7 Réponses :
S'il s'agit d'une application de non-production, supprimez simplement votre base de données locale (appname.sqlite) et redémarrez l'application. P>
ou si vous êtes en mode Dev, vous pouvez également supprimer l'application et l'exécuter à nouveau. P>
S'il s'agit d'une application de non-production, supprimez simplement votre base de données locale (appname.sqlite) et redémarrez l'application. P> blockQuote>
Je trouve que je fais toujours cela, et ainsi fournir les détails supplémentaires suivants: p>
sous Xcode 4 (4.3.2), vous devriez trouver votre magasin de données ici: P>
/ Utilisateurs / ~ / / Bibliothèque / Application Support / Iphone Simulator / Simulatulversion / Applications / OcAppIdentifier / Documents P>
ou vous pouvez utiliser des projecteurs, si vous activez d'abord la recherche de fichiers système; J'ai trouvé le plus rapide de sauvegarder une telle recherche dans la barre de menus. P>
J'ai fait face au même problème à l'aide de Xcode 7 Beta 1 et l'action suivante a résolu le problème. MENU == >> Cliquez sur la fenêtre> Projets> Sélectionnez Projet sur le côté gauche et cliquez sur le bouton Supprimer situé sur le côté droit. Si toujours ne fonctionne pas, => Réinitialisez le simulateur et exécutez l'application p>
sur simulator, allez au matériel -> Accueil:
Cliquez et maintenez le bouton de la souris enfoncé sur votre icône de l'application:
Cliquez sur "X" dans l'icône App pour supprimer: Retour à Xcode et redémarrez votre application (commande + r): ps.:
Si l'erreur apparaît à nouveau, consultez votre code car le problème doit être dans la syntaxe ou la différence entre ce que vous souhaitez énumérer avec le modèle de données que vous avez. P> p>
p>
p>
ou:
p>
Réinitialisez votre simulateur et courez à nouveau. Si vous deviez exécuter avec un autre appareil dans le simulateur, cela fonctionnerait. Si vous utilisez un simulateur iPhone 6S et que vous essayez de courir 6s plus, cela fonctionnerait toujours sans réinitialisation. p>
Si vous utilisez sur un téléphone, assurez-vous de supprimer l'application et de la répercuter p>
Suppression de l'application n'est parfois pas le cas! Suggérer, votre application a déjà été publiée! Vous ne pouvez pas simplement ajouter une nouvelle entité à la base de données et aller de l'avant - vous devez effectuer une migration! P>
Pour ceux qui ne veulent pas creuser dans la documentation et recherchent une solution rapide: P>
Ouvrez votre fichier .xcdatamodeld p>
Cliquez sur Editeur P>
Sélectionnez Ajouter une version modèle ... p>
Ajouter une nouvelle version de votre modèle (le nouveau groupe de DataModels ajoutés) P>
Sélectionnez le fichier principal, ouvrir l'inspecteur de fichiers (panneau de droite) et sous le modèle de données de base versé, sélectionnez votre nouvelle version du modèle de données pour le modèle de données actuel P>
Ce n'est pas tout), vous devriez effectuer une "migration lumineuse". P>
Allez à votre Appdelegate et trouvez où le persistantstorecoordinator est en cours de création p>
Recherchez cette ligne Remplacez les options NIL avec Vous allez vous amuser!
P.s. Cela ne s'applique que pour la migration légère. Pour que votre migration soit qualifiée de migration légère, vos modifications doivent être confinées à cette bande étroite: p>
Ajouter ou supprimer une propriété (attribut ou relation).
Faire une propriété non ouvertante en option.
Faites un attribut facultatif non optionnel, tant que vous fournissez une valeur par défaut.
Ajouter ou supprimer une entité.
Renommer une propriété.
Renommer une entité. P>
réponse empruntée à partir de Stas P> si (! [_ PersistentStorecoordinator AddPersistentStorewithType: NSSQLITESTOREType Configuration: NIL URL: StoreURL Options: NIL Erreur: & Erreur]) CODE> P>
@ {NSMIGRACERPERSISTESTOREUTOMATEMENTEUROMATEMENTATEMENTATEMATEMOPTION: @yes} (réellement fourni dans le code commenté dans cette méthode) code> p>
Sélectionnez le fichier principal, ouvrez l'inspecteur de fichiers (panneau de droite) et sous le modèle de données de base versé, sélectionnez votre nouvelle version du modèle de données pour le modèle de données actuel. Je n'ai pas pu comprendre cette étape. Alors je l'ai sauté et il a toujours résolu mon problème. Pouvez-vous expirer cette étape si possible?
C'est la bonne réponse. Merci, je devais mettre à jour un ancien projet, c'est la procédure correcte qui corrige le problème
Je recommande la réponse à cette question similaire: Stackoverflow.com/questions/16185562/...