2

Je suis novice en Objective-C; et je ne pouvais pas trouver de solution dans mes livres ou sur Internet. Quels sont les moyens les plus efficaces et les plus rapides d'utiliser .mom et SQLite db compilés sans les codes sources?Modèle d'objet géré de données de base compilé: Obtenir le maximum d'informations de celui-ci et de sa base de données correspondante

Détails: Je suis en train de se connecter ma petite application à la base de données d'une autre application et l'utilisation (lecture inly) la partie de ses données. Mais la tâche est difficile puisque cette application n'a pas SDK.

Cette application a un fichier .mom compilé et une base de données SQLite. J'ai réussi à programmer (n'utilisant pas IB) la connexion à la base de données en utilisant .mom et j'ai réussi à obtenir les entités, remplir les données dans les objets recréés par moi etc. Mais je fais chaque pas avec des devinettes, essais et erreurs. Ainsi, le développement prend beaucoup de temps et est sujette aux erreurs. La tâche la plus difficile à disséquer est de-nombreuses relations via des tables intermédiaires.

Par exemple: l'entité "Livres" a un lien avec "Auteurs". Comme la séquence des auteurs compte, il existe une table intermédiaire "authorsNombre" qui contient des champs: nombre, auteur, livre; et le champ "nombre" détermine l'ordre exact des auteurs comme ils devraient apparaître partout (important!)

J'ai finalement réussi à créer un tableau ordonné d'auteurs en utilisant NSSortDescriptor mais il m'a fallu toute une semaine pour trouver et deviner comment faire il! Voulez-vous suggérer des moyens plus efficaces de traiter avec .mom compilé plutôt que celui utilisé par moi?

Merci

Répondre

2

Si vous copiez le fichier .mom et modifiez l'extension de .plist vous obtiendrez un texte brut, fichier plist lisible par l'homme que vous pouvez puzzle avec une relative facilité.

+0

wow, merci ... Le fichier .xcdatamodel est un dossier avec des fichiers .plist; mais je ne me doutais pas que ce soi-disant fichier "compilé" .mom serait également le même. Je pensais que c'était une sorte de binaire ... Bien que le format des deux fichiers soit difficile à disséquer et à mapper aux entités. J'ai trouvé plus pratique d'ajouter ce fichier .mom à mon contexte d'objet géré, puis d'énumérer les entités, les attributs et les relations, quelque chose comme ceci: – Proteos

+0

// ... Code de connexion à managedObjectContext ... // int i; // Pour énumérer des entités NSEntityDescription * entity = [entités objectAtIndex: i]; NSDictionary * attrs = [entity attributesByName]; // Méthode d'énumération des ATTRIBUTS pour (clé NSString * dans attrs) { NSAttributeDescription * myAttr = [attrs objectForKey: key]; NSLog (@ "=> Attr:% @", [nom myAttr]); } – Proteos

+0

// Méthode agréable d'énumération RELATIONS \t \t NSDictionary * rels = [entity relationsByName]; pour (clé NSString * dans rels) { NSAttributeDescription * myRel = [rels objectForKey: key]; NSLog (@ "=> Rel:% @", [myRel name]); } – Proteos

0
  1. Créez un fichier de modèle vide, par exemple Example.exdatamodeld.

  2. Sélectionnez-le.

  3. Dans Xcode Editor -> Importer et sélectionner votre fichier maman.

  4. Vous pouvez afficher le modèle de données dans ce fichier maman.

Questions connexes