J'ai une application basée sur un document qui s'exécute avec des données de base. Le modèle objet a trois entités avec plusieurs propriétés. Il semble fonctionner plutôt bien - je peux remplir certaines informations et les sauvegarder, pas de problème. Quand je vais ouvrir le fichier résultant, cependant, il ouvre toujours "sale", avant même que j'ai touché quelque chose, et quelques champs sont parfois vides. Ce que je veux dire, c'est que parfois vous ouvrez le fichier et ces champs apparaissent vides et d'autres fois vous ouvrez le fichier et ils apparaissent avec les données appropriées. Les propriétés vides sont associées à une seule des entités et sont affichées dans le même NSTabView
. Ils sont certains NSStrings
affichés en tant que valeurs dans les champs de texte et les étiquettes.Fichier d'ouverture de données de base sale, valeurs manquantes de façon incohérente, extraction renvoie un tableau vide
Mise à jour: Merci aux conseils de @ ughoavgfhw, je suis passé à un magasin XML et trouvé deux problèmes: que je créais une nouvelle entité chaque fois que le document a été ouvert dans le [MyDocument init]
au lieu de charger celui enregistré dans la magasin persistant, mais maintenant j'ai des problèmes pour aller chercher celui-là.
Dans le fichier XML résultant après une sauvegarde, il ne comprend ceci (l'entité et les propriétés qui me donne du mal):
<object type="STORY" id="z102">
<attribute name="title" type="string">test 6</attribute>
<attribute name="descript" type="string">this is a test</attribute>
</object>
et je tente de le chercher avec ceci:
- (Story *)getSavedStory {
NSEntityDescription *entityDescription = [NSEntityDescription entityForName:@"Story" inManagedObjectContext:[self managedObjectContext]];
NSFetchRequest *request = [[[NSFetchRequest alloc] init] autorelease];
[request setEntity:entityDescription];
NSError *error = nil;
NSArray *array = [[self managedObjectContext] executeFetchRequest:request error:&error];
if (array == nil) {
NSLog(@"%@",error);
return nil;
} else {
return [array lastObject];
}
}
Après l'ouverture de ce magasin persistant, cette requête renvoie un tableau vide (et aucune erreur). Des conseils sur où aller à partir d'ici? Sans code, tout ce que je peux faire est de deviner, mais j'imagine que vous faites une configuration lorsque vous chargez le document
pouvez-vous poster le code indiquant comment vous ouvrez le fichier? – MCannon
Je n'ai rien écrit de spécifique pour gérer cela, donc je suis sûr qu'il hérite de cette fonctionnalité de 'NSPersistentDocument'. –